2013-04-15 60 views
1

我面臨以下問題。我有JSON字符串,其中內部數組/對象有時寫成轉義字符串,有時不會。比如我有如何修復混合的JSON編碼字符串

{ "author": "Jack", 
    "meta": ["a", "b"]} 

和一個壞:

{ "author": "Jack", 
    "meta": "[\"a\", \"b\"]"} 

如果我分析了後者,我只會得到的元屬性的字符串。這可以通過再次通過JSON解析器傳遞元屬性來解決。但是,如果我通過JSON.parse(Ruby)或JSON.load(Python)傳遞它,那麼問題可能是我沒有處理轉義字符串,但可能是一個簡單的數字"15.3"。這會導致錯誤。

那麼我該如何智能檢測,值是否是需要再次通過JSON.parse的值?只是試圖捕捉這種情況?

+0

'json.loads('15.3')'在Python中工作正常。 – nneonneo

+1

我寧願問一下如何從任何鱈魚輸出字符串獲得一致的JSON格式,而不是試圖找出如何檢測和糾正不規範的JSON。 –

+0

在輸出後者JSON的代碼中的某處相當於'array.to_json.to_json'(可能是由於遞歸或嵌入結構) –

回答

2

這真的取決於那種你要處理的雙重編碼的數據,但在測試的第一個字符可能就足夠了。如果是[{,那麼您可以嘗試使用JSON對其進行解碼,如果成功,則將其替換爲該值。