![](/img/trans.png)
[英]How to create array of string with each string enclosed with single quote(javascript)
[英]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.