我有以下JSON格式的字符串:
{
"hooks":[
{
"type":"subscribe",
"id":1331741592.6925,
"email":"JoeX@test-email.com",
"status":"Active",
"custom_fields":"{\"first_name\":\"Joe\",\"last_name\":\"X\"}",
"ip_created":"24.199.200.142",
"list_id":"33",
"list_type":"internal",
"list_name":"Administrator List 2",
"list_optin":false
},
{
"type":"subscribe",
"id":1331741592.7067,
"email":"JaneY@test-email.com",
"status":"Active",
"custom_fields":"{\"first_name\": \"Jane\",\"last_name\":\"Y\"}",
"ip_created":"24.199.200.142",
"list_id":"33",
"list_type":"internal",
"list_name":"Administrator List 2",
"list_optin":false
}
]
}我想使用PHP json_decode()函数将其放入一个关联数组中。
当我运行脚本时,调试显示新数组的值为null,所以我认为解码失败了。我们没有运行PHP5.3,所以我不能使用json_last_error()。代码如下:
$hooks = (the JSON string from above);
$hooksArray = json_decode($hooks, true);你知道为什么null会回归$hooksArray吗?
发布于 2012-06-27 22:11:30
JSON字符串在PHP源代码中吗?也许它没有正确解释转义的反斜杠。
我在Python中尝试了以下实验作为参考:通过REPL将JSON数据转储为多行字符串,并使用json.loads()对其进行解码。它被custom_fields字符串的第一个实例中的字符串内引号阻塞。当我检查多行字符串时,所有的转义都消失了,只剩下引号。
当我将相同的JSON数据放入外部文件并加载它时,它工作得很好。
我将JSON数据放在一个外部文件中,并将所有“\”实例替换为“\”,然后第一个实验开始工作。
也许这对你也是有效的。
https://stackoverflow.com/questions/11227886
复制相似问题