尝试通过json_encode从数组获取值非法的字符串偏移量

时间:2019-12-12 09:44:25

标签: php json

这是我尝试过的:

$arrayToJson = '{"doctype":"invrec","docnum":3006}';
$arrayToJson = json_encode($arrayToJson);

print_r($arrayToJson['docnum']);

结果是:“

2 个答案:

答案 0 :(得分:3)

您在尝试将对象转换为PHP中的关联数组时犯了一个错误。

您应该使用json_decode将字符串解码为对象。另外,您希望它是一个关联数组,因此必须为TRUE的第二个参数指定json_decode

$arrayToJson = '{"doctype":"invrec","docnum":3006}';
$arrayToJson = json_decode($arrayToJson, TRUE);

print_r($arrayToJson['docnum']);

输出:

3006

供您参考,json_decode的文档为here

答案 1 :(得分:1)

首先,您要解码您的JSON,而不是第二次对其进行编码。

其次,您的JSON包含一个 object ,因此您需要在此处使用$arrayToJson->docnum来访问属性,或者需要使用{{1 }}设置为json_decode,以便将结果转换为数组。