我正在尝试使用json_decode($s,true)
解析JSON字符串。
如果我var_dump
我的字符串,它看起来像:
string(186) "[{"ta_id":97497,"partner_id":"229547","partner_url":"http://partner.com/deeplink/to/229547"},"ta_id":97832,"partner_id":"id34234","partner_url":"http://partner.com/deeplink/to/id34234"}]"
你可以在行的开头看到那些双引号(以及错误的语法高亮),我认为这是我的问题。 json_last_error()
返回4
(JSON_ERROR_SYNTAX
)
我该如何解决这个问题?该字符串是从POST
数据中提取的。感谢
答案 0 :(得分:2)
您的Json无效。
Parse error on line 7:
..." }, "ta_id": 97832, "partne
---------------------^
Expecting '}', ',', ']'
答案 1 :(得分:1)
我怀疑你会发现那些双引号只是var_dump
表示字符串而不是问题的一部分。
将它们从末端剥离并validate the JSON,你会得到:
[
{
"ta_id": 97497,
"partner_id": "229547",
"partner_url": "http://partner.com/deeplink/to/229547"
},
"ta_id": 97832,
"partner_id": "id34234",
"partner_url": "http://partner.com/deeplink/to/id34234"
}
]
Parse error on line 7:
..." }, "ta_id": 97832, "partne
---------------------^
Expecting '}', ',', ']'
您缺少{
。
答案 2 :(得分:1)
[
{
"ta_id":97497,
"partner_id":"229547",
"partner_url":"http://partner.com/deeplink/to/229547"
},
"ta_id":97832,
"partner_id":"id34234",
"partner_url":"http://partner.com/deeplink/to/id34234"
}
]
从这个细分中可以看出,您错过了{
。这是语法错误的原因。
答案 3 :(得分:1)
双引号不是问题。您在JSON中缺少一个大括号{
。正确的JSON字符串应如下所示:
[
{
"ta_id": 97497,
"partner_id": 229547,
"partner_url": "http://partner.com/deeplink/to/229547"
},
{ <----------------------------- this was the problem
"ta_id": 97832,
"partner_id": "id34234",
"partner_url": "http://partner.com/deeplink/to/id34234"
}
]
使用JSONLint.com等在线验证服务验证JSON字符串可以帮助您轻松找到问题。