首页 > 解决方案 > 如何使用 JSON.parse() 解析多个 JSON 数组?

问题描述

我从 db 获取记录并为每一行创建一个数组并使用json_encode(). 现在,我的数据返回如下:[{"slug":"bitcoin","change7d":"-3.87"}][{"slug":"maker","change7d":"-8.58"}]

当我试图解析 ajax 调用的数据时,console.log()返回错误SyntaxError: Unexpected token [ in JSON at position 39。这是我的代码:

在我的 php 文件中:

    foreach($result as $row){
        $data[] = $row;

    }
    print json_encode($data);

在我的 js 文件中:

    var newData = JSON.parse(result);

如果我稍微改变我的查询并获得一条记录,那么我解析数据就没有问题了。

标签: arraysjson

解决方案


JSON.parse 解析单个有效的 JS 对象({ } 结构或数组)。因此,在您的情况下,解决方案要么从数据库中逐个数组地获取数组并逐个解析它们,要么尝试将它们转换为从数据库中获得的文本级别的一大数组数组。为此,您需要用方括号将数组括起来并在它们之间放置逗号。

在你的情况下,它看起来像:

  [
    [{"slug":"bitcoin","change7d":"-3.87"}],
    [{"slug":"maker","change7d":"-8.58"}]
  ]

推荐阅读