2014-01-23 55 views
3

我的函數收到一個可能有語法錯誤的JSON字符串,我該如何解決我的函數中的錯誤,以便我可以調用JSON.parse()有沒有一種方法可以在JavaScript中以編程方式修復JSON語法錯誤?

問題故事:我想解析一下linux命令sudo lshw -class network -json的命令輸出。例如,PC有2個NIC,所以命令輸出有2個JSON對象。一個例外如下:

{ 
    "businfo" : "[email protected]:01:00.0", 
    some other keys 
} 
{ 
    "businfo" : "[email protected]:4", 
    some other keys 
} 

注意:2個對象沒有「,」分隔符。所以JSON.parse()會產生錯誤。 ODD:另一個hyper-v vm的lshw與上面使用的版本相同,但是它可以在兩個對象之間生成正確的帶有「,」的JSON。相同的命令行。

回答

1

如果唯一的問題是對象之間沒有逗號並且字符串的格式相同,您可以將字符串替換爲'} {'到'},{',然後生成的字符串應該是解析的。 希望這會有所幫助。

+0

不錯的提示!非常感謝! –

+0

另一個問題:「}」和「{」之間有空格的空間數量,如何添加「,」...我認爲這個問題可能會縮小爲:如何用正則表達式替換「}任意數量的空格和\ n {「與」},{「。 –

+0

這是一個非常簡單的方法var str =「{object one} {object two} {object three}」; var res = str.replace(/} \ s * {/ g,'},{'); –

相關問題