【发布时间】:2026-01-19 21:55:01
【问题描述】:
我将一个 JSON 编码的字符串传递给 json_decode(),并希望它的输出是一个对象类型,但我得到的是一个字符串类型。如何返回对象?
在文档中,以下内容返回一个对象:
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
但是,如果我先json_encode()这个字符串再调用json_decode(),输出的是一个字符串而不是一个对象:
$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”。
如何返回对象类型?
感谢您的回复! 这个问题的实际上下文是使用来自 API 的 JSON 响应。 但是,当我对此响应执行 json_decode 并尝试访问以下值时 - $json=json_decode(json response from API); 回声 $json->a 它给了我一个错误:stdClass 类的对象无法转换为字符串
【问题讨论】:
-
为什么要对已经编码的 JSON 进行编码?前:
$json = json_encode('{"a":1,"b":2,"c":3,"d":4,"e":5}');? -
你编码的是一个字符串,而不是一个对象,所以很明显你在解码时会得到一个字符串。
-
绝对正确的穆萨!如果您传递的字符串超出了您对对象的预期?
-
谢谢,了解我给出的示例所特有的问题。