我遇到麻烦让json_decode工作在我正在接收的特定字符串上。PHP,JSON解码中的字符无效
我已经把范围缩小到这一行:
“systemNotes [6]”:“2013年1月9日下午12时52分 - 测试名称 - 更改账单地址2从航运名字:航运姓:电子邮件地址:送货地址:送货地址2:送货城市:送货邮递区号:送货国家/地区:送货状态:电话:账单名称:帐单姓名:帐单地址:帐单地址2:帐单C“
从这个问题复制json,这个问题是不可复制的 - 但是原始json的代表片段是在这里:http://codepad.org/ZzrC7rqQ - 并把在jsonlint.com给出:
Parse error on line 3:
... "systemNotes[6]": "January 09, 2013 12
-----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
什么不对这个字符串,它是无效的JSON?
编辑
我设法找到确切的代码来跨越。
“systemNotes [6]”:“一月+ 09%2C + 2013 + 12%+ 3A52 PM ++首先+名称++ ++变更帐单+地址+ 2 +从++到+送货+首先+名称%3A%09 +运费+尾+名称%3A%09 +电子邮件+地址%3A%09 +运费+地址%3A +%09 +运费+地址+ 2%3A +%09 +运费+城市%3A +% 09 +运费+邮编%2FPostal%3A +%09 +运费+乡村%3A +%09 +运费+州立%3A +%09 +电话%3A +%09 +计费+一+名称%3A +%09 +计费+尾+名称% 3A +%09 +计费+地址%3A +%09 +计费+地址+ 2%3A +%09 +计费+ C”
这似乎是确定,所以也许问题的根源,当我做parse_str到来,这里是我使用的代码:
$response = apiConnection($data);
parse_str($response, $parse);
$each = json_decode($parse['data']);
foreach($each as $key => $order){
//do something
}
你是如何收集的字符串? – aynber
我正在查询一个API,它将它作为字符串发回给我。 然后我使用parse_str将其留在数组中。 – Scott
你可以检查字符串是否有非UTF 8字符? –