簡體   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