繁体   English   中英

如何解析JavaScript中的JSON数组,该数组在数组中的每个对象周围都有一个单引号?

[英]How to parse a JSON array in javascript that has a single quote around each object in the array?

我这里的情况很奇怪。 我有一个文本文件,该文件是JSON对象的列表,它们由换行符分隔,如下所示:

{"upSpeed": 13.860419184316857, "downSpeed": 85.93058668830014, "time": "2016-12-12T21:31:56.507318"}
{"upSpeed": 13.860419184316857, "downSpeed": 85.93058668830014, "time": "2016-12-12T21:31:56.507318"}
{"upSpeed": 13.890492898595365, "downSpeed": 87.35392034236816, "time": "2016-12-12T21:37:52.174878"}
{"upSpeed": 13.69741910903317, "downSpeed": 88.08812682966898, "time": "2016-12-12T21:41:04.688231"}
...

我使用fs.readFile(text file)加载该文本文件,然后使用array = data.split("\\n")按行拆分文本文件,然后将每一行插入array ,创建一个名为array的JSON array 但是,问题是,当我使用data.split("\\n")分割原始文本文件时,程序将生成的对象在两侧用单引号( ' )括起来,从而导致无效的JSON。 因此,它最终看起来像这样:

[ '{"upSpeed": 13.860419184316857, "downSpeed": 85.93058668830014, "time": "2016-12-12T21:31:56.507318"}',
  '{"upSpeed": 13.860419184316857, "downSpeed": 85.93058668830014, "time": "2016-12-12T21:31:56.507318"}',
  '{"upSpeed": 13.890492898595365, "downSpeed": 87.35392034236816, "time": "2016-12-12T21:37:52.174878"}',
  '{"upSpeed": 13.69741910903317, "downSpeed": 88.08812682966898, "time": "2016-12-12T21:41:04.688231"}'
...]

因此,是否有避免避免添加单引号以使结果成为实际javascript对象的方法? 我试图创建一个for循环,并遍历数组中的每个元素,然后运行array[i] = array[i].replace(/'/g, ""); 可以将单引号替换为空( "" ),但这根本行不通,并返回与上面显示的完全相同的结果。 有任何想法吗?

您没有“带单引号的JSON”。 您有一个JSON字符串列表。 单引号只是节点将其写入控制台的方式。

只需单独解析它们。

var items = data.split(/\n/).map(JSON.parse);

推荐阅读,因为我怀疑您正在混淆:Ben Alman的博客- 没有“ JSON Object”之类的东西

您是否尝试过类似的方法: var jsonItem = JSON.parse(array[i]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM