Php json_decode返回字符串类型而不是对象
我将一个JSON编码的字符串传递给Php json_decode返回字符串类型而不是对象,php,json,Php,Json,我将一个JSON编码的字符串传递给JSON\u decode(),我希望它的输出是一个对象类型,但我得到的是一个字符串类型。如何返回对象 在文档中,以下内容返回一个对象: $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); $json = json_encode('{"a":1,"b":2,"c":3,"d":4,"e":5}'); var_dump(json_decode($json)); 但是,
JSON\u decode()
,我希望它的输出是一个对象类型,但我得到的是一个字符串类型。如何返回对象
在文档中,以下内容返回一个对象:
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
$json = json_encode('{"a":1,"b":2,"c":3,"d":4,"e":5}');
var_dump(json_decode($json));
但是,如果我先调用字符串,然后调用json\u decode()
,则输出是字符串而不是对象:
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
$json = json_encode('{"a":1,"b":2,"c":3,"d":4,"e":5}');
var_dump(json_decode($json));
这只是一个简单的例子。实际上,我所做的是通过AJAX将JSON编码的字符串推送到PHP。然而,它确实说明了将这个编码的JSON字符串转换为我可以在PHP中读取的对象的问题,例如“$JSON->a
”
如何返回对象类型
谢谢你的回复!
这个问题的实际上下文是am使用来自API的JSON响应。
但是当我对这个响应执行json_解码并尝试访问诸如-$json=json_解码(来自API的json响应)之类的值时;
echo$json->a
它给了我一个错误:类stdClass的对象无法转换为字符串
var_dump(json_decode($json, true));
函数
json\u encode
用于以json格式对本机PHP对象或数组进行编码
例如,$json=json\u encode($arr)
其中$arr
是
$arr = array(
'a' => 1,
'b' => 2,
'c' => 3,
'd' => 4,
'e' => 5,
);
将返回字符串$json='{“a”:1,“b”:2,“c”:3,“d”:4,“e”:5}'
。此时,您确实不需要使用json\u encode
再次对其进行编码
要获取数组,只需执行json\u解码($json,true)
如果在调用json\u decode
时省略true
,则将获得一个stdClass
实例,该实例具有json字符串中指定的各种属性
有关更多参考资料,请参阅:
不要在JSON数组上写,而是先尝试将其放入PHP数组中
<?php
$array = array(
'a' => 1,
'b' => 2,
'c' => 3,
'd' => 4,
'e' => 5
);
//Then json_encode()
$json = json_encode($array);
echo $json;
die;
?>
其中console.log()中的after data可以添加json变量,如data.a、data.b
另外,对于您提供的字符串M,您不需要进行json编码,因为它是json格式的为什么要对已经编码的json进行编码?例如:
$json=json_encode(“{”a:1,“b:2,“c:3,“d:4”,“e:5}”)代码>?你在编码一个字符串,而不是一个对象,所以很明显,当你解码它时,你会得到一个字符串。绝对正确,穆萨。!如果你传递的是一个字符串,那么你怎么能期望对象呢?谢谢,理解了我给出的例子中的问题。谢谢你的回复!这个问题的实际上下文是am使用来自API的JSON响应。但是当我对这个响应执行json_解码并尝试访问诸如-$json=json_解码(来自API的json响应)之类的值时;echo$json->a它给了我一个错误:类stdClass的对象无法转换为stringI-see。。你能告诉我们你正在处理的实际json响应吗?有d问题!它被双json_解码,所以var_dump给出的是字符串而不是对象。通过var_dump函数检查并调试。感谢您提醒此功能:)