Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON编码的多维数组返回错误语法(意外)_Javascript_Php_Arrays_Json_Multidimensional Array - Fatal编程技术网

Javascript JSON编码的多维数组返回错误语法(意外)

Javascript JSON编码的多维数组返回错误语法(意外),javascript,php,arrays,json,multidimensional-array,Javascript,Php,Arrays,Json,Multidimensional Array,我有一个PHP数组,需要将其作为JSON发送到javascript。PHP脚本和AJAX调用可以工作,但返回的JSON字符串不能解析JSON;它不是数组的数组,而是将数组粘在一起,没有分隔符或容器 JSON字符串示例: [{"id":"77","options":[],"price":"4.25","title":"Zeppoli's","spec":""}][{"id":"78","options":[],"price":"7.95","title":"Battered Mushrooms",

我有一个PHP数组,需要将其作为JSON发送到javascript。PHP脚本和AJAX调用可以工作,但返回的JSON字符串不能解析JSON;它不是数组的数组,而是将数组粘在一起,没有分隔符或容器

JSON字符串示例:

[{"id":"77","options":[],"price":"4.25","title":"Zeppoli's","spec":""}][{"id":"78","options":[],"price":"7.95","title":"Battered Mushrooms","spec":""}]
$cartArr = array(); // array of objects to be jsonified
foreach($products as $product){
    unset($newItem);
    $newItem = array(
        "id" => $product['itemID'],
        "options" => $theseOptions,
        "price" => $product['price'],
        "title" => $product['name'],
        "spec" => $product["special"],
        "cartid" => $product['ID']
    );
    array_push($cartArr,$newItem); 
    echo json_encode($cartArr);
}
创建上述JSON字符串的PHP代码段:

[{"id":"77","options":[],"price":"4.25","title":"Zeppoli's","spec":""}][{"id":"78","options":[],"price":"7.95","title":"Battered Mushrooms","spec":""}]
$cartArr = array(); // array of objects to be jsonified
foreach($products as $product){
    unset($newItem);
    $newItem = array(
        "id" => $product['itemID'],
        "options" => $theseOptions,
        "price" => $product['price'],
        "title" => $product['name'],
        "spec" => $product["special"],
        "cartid" => $product['ID']
    );
    array_push($cartArr,$newItem); 
    echo json_encode($cartArr);
}
除非手动更正该字符串,否则尝试对该字符串执行JSON.parse()操作将导致以下错误

Uncaught SyntaxError: Unexpected token [

您正在循环中构建json,这意味着您正在输出多个独立的json字符串,这是非法语法。e、 你在干什么

[0,1,2][3,4,5]
这是两个单独的阵列相互干扰。它必须更像

[[0,1,2],[3,4,5]]
要成为有效的JSON。在您完全构建PHP数据结构之后,在JOSS<强>最后中进行编码,而不是在构建过程中间的零碎部分。 e、 g


您的JSON格式不正确。每个项目都是自己数组中的一个对象,而我相信您只需要一个包含多个项目的数组。将
echo json\u encode
行放在循环之外。如果有多个迭代,那么一个接一个的JSON将无效。e、 g.
[]]
是无效的JSON。