当前位置: 首页 > 知识库问答 >
问题:

似乎无法从json获取数据

松正阳
2023-03-14

我有一个简单的web应用程序,我从应用程序的前端获取json。我有一个对象,它包含很少的属性和一个对象数组。

它看起来像这样:

{
"first_name": "test",
"last_name": "test2",
"id": "1234",
"cars": [{
        "model": "car_model",
        "make": "car_maker",
        "year": "1234",
        "owned_since": "3456"
    },
    {
        "model": "car_model",
        "make": "car_maker",
        "year": "1234",
        "owned_since": "3456"
    }
  ]
}

我通过使用JSON获得这个JSON。将前端上的对象字符串化。我用axios向我的PHP-Laravel后端发送了一个POST请求,我想对它进行解析。

这就是我所拥有的:

public function store() { 
    $json = json_decode(request()->getContent(), true);
}

我尝试像这样获取json数据:

public function store() { 
    $json = json_decoder(request()->getContent, true);
    $first_name = $json -> first_name;
    for($json->cars as $key => $value) {
        
    }
}

但它就是不起作用。我总是遇到一个错误,我试图访问对象上的first\u name,但它不存在。我也试过这样做:

public function store() { 
$json = json_decoder(request()->getContent);
$first_name = $json['first_name'];
for($json['cars'] as $key => $value) {
    
}
}

但是我也有同样的问题。我做错了什么,我看到了关于这个话题的几个不同的答案,但就是无法让它发挥作用。

共有1个答案

太叔英锐
2023-03-14

如果您试图发布数据,但似乎无法在后端访问数据,我建议您检查任何原始发布数据。

您可以检查以下任何原始POST数据:

$postData = file_get_contents('php://input');
print_r($postData);

原因是PHP在填充$_POST时不支持JSON数据。

它只支持:

(此处完整回答:https://stackoverflow.com/a/42507767/2906013)。

 类似资料:
  • 问题内容: 我正在为我的android应用程序使用retrofit:2.0.0-beta4。 我尝试使用Retrofit添加用户,该用户已在Database中正确创建,但是出现以下错误: 服务器返回的结果是: 这是正确的json格式,我不明白为什么会收到这样的异常? 这是我们的界面: 呼叫者代码为: 有人可以提供任何线索吗? 问题答案: 最后,我解决了与json宽松模式无关的问题,我的POST响应

  • 我有个问题。我似乎无法从MySQL数据库/表中获取最后插入的记录/id。我想从“tag_id”列返回最后一个插入的id,但我没有得到任何返回。顺便说一下,我正在使用DBO。我尝试了“mysql\u insert\u id”和“lastInsertId”,但没有成功。 我的数据库表看起来像这样: 表名:gitags_标签 我的PHP如下所示(在本例中,我希望返回'440'): 非常感谢您的帮助。

  • 我使用改装: 2.0.0-beta4为我的Android应用程序。 我试图添加一个改型用户,该用户已在数据库中正确创建,但出现以下错误: 服务器返回的结果是: 这是正确的json格式,我不明白为什么会出现这样的异常? 下面是我的界面: 调用方代码是: 有人能提供线索吗?

  • 我不能在我的服务课上用我的积垢。我可以创建存储库,但当我将其自动连接到我的服务类时,会出现以下错误: com中构造函数的参数0。测验服务testService需要“com”类型的bean。测验存储库。找不到TestRepository“”。 行动: 考虑定义COM类型的bean。测验存储库。配置中的TestRepository。 这对许多人来说似乎是一个大问题。我尝试了各种东西,如@Compone

  • 问题内容: 我的PHP版本是5.1.6,请按照以下说明安装Json: 现在,我检查是否启用了Json,但无法运行json_encode: 检查1: 结果1: 检查2: 结果2: 但是运行时: 这是运行链接: 检查Json:http : //69.64.69.43/fre/json.php php_info():http://69.64.69.43/fre/info.php 我当时确实在看并阅读了许

  • 问题内容: 我正在尝试通过jQuery ajax调用获取数据。 我的代码如下所示: 我的文件返回的是json格式的数据,但某些文本为Unicode格式。我在我的javascript文件上及其上设置了字符集,但仍然无法访问响应的数据对象。 有任何想法吗? 问题答案: 尝试加入您的ajax调用: