Javascript Php JSON编码数组和解码中的意外令牌错误

Javascript Php JSON编码数组和解码中的意外令牌错误,javascript,php,json,Javascript,Php,Json,我从一个SQL查询中得到了一个数组,对它进行了编码,当我用javascript解码时,我收到了错误 JSON中位于位置0处的意外标记a 编码前数组的var\u dump: array(1) { [0]=> array(10) { ["order_id"]=> string(10) "1512642144" ["order_erp_id"]=> string(1) "0" ["order_type"]=> string(3) "web" ["order_date"]=&

我从一个SQL查询中得到了一个数组,对它进行了编码,当我用javascript解码时,我收到了错误

JSON中位于位置0处的意外标记a

编码前数组的
var\u 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":""}]
array(1) { [0]=> array
然后我对其进行编码并发送:

echo json_encode($order_item_arr);
在客户端,我接收数据,在解码步骤之前,我从
console.log(data)接收数据:

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(数据)解码它时我有一个错误:

VM414:1 Uncaught SyntaxError: Unexpected token a in JSON at position 0   
未捕获的SyntaxError:JSON中位于位置0的意外标记a

因此,“JSON”中的第一个字符是
a
,它不能是有效的JSON。和您的
echo json\u encode($order\u item\u arr)行将不会输出它

编码前数组的var_转储:

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":""}]
array(1) { [0]=> array
…这就是你的问题。您可以看到第一个字符是
a

您正试图像解析JSON一样解析var_转储

不要那样做。而是解析JSON

未捕获的SyntaxError:JSON中位于位置0的意外标记a

因此,“JSON”中的第一个字符是
a
,它不能是有效的JSON。和您的
echo json\u encode($order\u item\u arr)行将不会输出它

编码前数组的var_转储:

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":""}]
array(1) { [0]=> array
…这就是你的问题。您可以看到第一个字符是
a

您正试图像解析JSON一样解析var_转储


不要那样做。改为解析JSON。

不要在PHP页面上输出
var\u dump
,它会使该页面上的JSON无效。删除
var\u dump()
,错误就会消失

如您所见:

JSON中位于位置0处的意外标记a

该错误是由于
数组(1){
引起的,该数组不是有效的json。并且正在破坏整个json数据

因此,只需删除
var\u 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":""}]

不要在PHP页面上输出
var\u dump
,这会使该页面上的json无效。删除
var\u dump()
,错误就会消失

如您所见:

JSON中位于位置0处的意外标记a

该错误是由于
数组(1){
引起的,该数组不是有效的json。并且正在破坏整个json数据

因此,只需删除
var\u 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":""}]
parse()用于将包含JSON符号的字符串转换为Javascript对象

您的代码(通过调用.toString())将对象转换为字符串,以便尝试将其解析为JSON文本。 默认的.toString()返回“[object object]”,它不是有效的JSON;因此错误

JSON.parse()用于将包含JSON符号的字符串转换为Javascript对象

您的代码(通过调用.toString())将对象转换为字符串,以便尝试将其解析为JSON文本。
默认的.toString()返回“[object object]”,它不是有效的JSON;因此出现错误

谢谢,我如何才能正确编码数组而不发送“array(1)…@StefanoMaglione-Do.not.Use.
var\u dump
。谢谢,我如何在不发送“array(1)”的情况下正确编码数组…@StefanoMaglione-Do.Not.Use.
var\u dump