簡體   English   中英

解析/處理格式異常的json數組

[英]Parsing/manipulating weirdly formated json array

我有以下破碎的javascript json字符串

[ 'some string's', 'inside, array', 60.4, 10.3, '' ]

我想將這個殘破的json字符串(從網頁的腳本部分抓取)解析為一個javascript數組-但正如您所看到的那樣,它不是有效的json。 字符串用單引號引起來,並且字符串內也可以用單引號引起來。 因此,我需要用雙引號替換字符串項周圍的單引號,而不更改字符串內部的單引號。

這里有正則表達式魔術師嗎?

更新:字符串也可以包含逗號,並且項目也可以是數字。

提示:查找模式', '可以分隔字符串項目。

假設您的“不良” JSON字符串始終以[ '開頭,以' ]結尾,我們可以先“修剪”字符串,然后使用', '分割。

  var str = "[ 'some string's', 76, 'inside, array', '', 60.4, 10.3, '', 56 ]"; str = str.replace(/^\\[ | \\]$/g, '') var re = /'(.*?)'(?=,|$)|(\\d+(?:\\.\\d+)?)(?=,|$)/g; var m; arr = []; while ((m = re.exec(str)) !== null) { if (m.index === re.lastIndex) { re.lastIndex++; } if (m[1] != undefined) { arr.push(m[1]); document.getElementById("res").innerHTML += m[1] + "<br/>"; } else { arr.push(m[2]); document.getElementById("res").innerHTML += m[2] + "<br/>"; } } alert(arr); 
 <div id="res"/> 

但是,請注意,修復JSON的最佳方法是在JSON提供程序方面進行修復。 如果您有更復雜的JSON字符串,則此解決方案將需要增強。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM