【发布时间】:2018-04-06 12:24:37
【问题描述】:
我有一个字符串(JSON 类型),我想将它转换为 PHP 数组。
{
"action":"putEntity",
"dataPacket":{
"entity":[
{
"name":"product",
"data":[
{ }
]
}
]
}
}
我这样做了,
$array = json_decode(json_encode($data), True);
当我执行 var_dump($array); 时,它会显示:
string(1578) "{ "action": "putEntity", "dataPacket": { "entity": [{ "name": "product", "data": [{ }] }] } }"
但是当我这样做时,print_r($array); 它会显示:
{
"action": "putEntity",
"dataPacket":{
"entity":[
{
"name": "product",
"data":[{}]
}
]
}
}
问题是当我尝试打印$array['dataPacket']; 它抛出错误非法字符串偏移'dataPacket'
为什么 var_dump 将其显示为字符串?请帮忙。
【问题讨论】:
-
你是在循环遍历 JSON 数组然后输出它的结果吗?
-
你是在……对(已经编码的)字符串进行编码,然后再解码一层,从而返回原始(编码的)字符串吗?
-
var_dump 将其显示为字符串,因为此时它是字符串。如果它是有效的 json,您可以对其进行解码,然后您可以访问 $array['dataPacket']。没有完整的代码,很难进行精确调试。
-
其实
print_r()也说是字符串。如果它是一个数组,它的输出将沿着Array ( [action] => putEntity等行。
标签: php