我从 SQL 查询中获取了一个数组,对其进行了编码,当我在 javascript 中进行解码时,我收到了错误
Unexpected token a in JSON at position 0
var_dump
编码前的数组:
array(1) { [0]=> array(10) { ["order_id"]=> string(10) "1512642144"
["order_erp_id"]=> string(1) "0" ["order_type"]=> string(3) "web"
["order_date"]=> string(23) "2017-12-07 11:22:24.263" ["order_total"]=>
string(4) "0.00" ["order_desc1"]=> string(3) "web" ["order_desc2"]=>
string(4) "test" ["no_items"]=> string(1) "0" ["order_count"]=> int(1)
["item_arr"]=> string(0) "" } }
[{"order_id":"1512642144","order_erp_id":"0","order_type":"web",
"order_date":"2017-12-07 11:22:24.263","order_total":"0.00",
"order_desc1":"web","order_desc2":"test","no_items":"0",
"order_count":1,"item_arr":""}]
然后我编码并发送它:
echo json_encode($order_item_arr);
在客户端,我接收数据,在解码步骤之前,我从 console.log(data);
获取数据。在 JavaScript 中:
array(1) {
[0]=>
array(10) {
["order_id"]=>
string(10) "1512642144"
["order_erp_id"]=>
string(1) "0"
["order_type"]=>
string(3) "web"
["order_date"]=>
string(23) "2017-12-07 11:22:24.263"
["order_total"]=>
string(4) "0.00"
["order_desc1"]=>
string(3) "web"
["order_desc2"]=>
string(4) "test"
["no_items"]=>
string(1) "0"
["order_count"]=>
int(1)
["item_arr"]=>
string(0) ""
}
}
[{"order_id":"1512642144","order_erp_id":"0","order_type":"web",
"order_date":"2017-12-07 11:22:24.263","order_total":"0.00",
"order_desc1":"web","order_desc2":"test","no_items":"0",
"order_count":1,"item_arr":""}]
所以看起来很好,当我用 JSON.parse(data);
解码它时我有错误:
VM414:1 Uncaught SyntaxError: Unexpected token a in JSON at position 0
最佳答案
不要在 PHP 页面上输出 var_dump
,它会使该页面上的 json 无效。删除var_dump()
,错误就会消失。
正如您所看到的:
Unexpected token a in JSON at position 0
该错误是由于 array(1) {
导致的,它不是有效的 json。并且正在破坏整个 json 数据。
因此,只需删除 var_dump()
即可。
看看这个:
array(1) {
[0]=>
array(10) {
["order_id"]=>
string(10) "1512642144"
["order_erp_id"]=>
string(1) "0"
["order_type"]=>
string(3) "web"
["order_date"]=>
string(23) "2017-12-07 11:22:24.263"
["order_total"]=>
string(4) "0.00"
["order_desc1"]=>
string(3) "web"
["order_desc2"]=>
string(4) "test"
["no_items"]=>
string(1) "0"
["order_count"]=>
int(1)
["item_arr"]=>
string(0) ""
}
}
删除 var_dump()
将删除上面的部分,唯一保留的是下面的字符串,它是有效的 json。
[{"order_id":"1512642144","order_erp_id":"0","order_type":"web",
"order_date":"2017-12-07 11:22:24.263","order_total":"0.00",
"order_desc1":"web","order_desc2":"test","no_items":"0",
"order_count":1,"item_arr":""}]
关于javascript - Php JSON 编码数组和解码中的意外标记错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47693187/