2016-12-07 60 views
-1

我試圖解析JavaScript中的以下JSON,但都沒有成功解析此JSON在Javascript

{ 
    "outer":"{'inner':{'key':'value'}}" 
} 

以上JSON使用JSON.parse給出了一個無效的語法錯誤。我已驗證其有效的JSON。我錯過了什麼?

var json = '{"outer":"{'inner':{'key':'value'}}"}'; 
JSON.parse(json); 

這給出了一個意想不到的標識在「內部」 JSON

+1

我們證明您是如何分析你的JSON和你所期望的。 'JSON.parse(「{\」outer \「:\」{'inner':{'key':'value'}} \「}」);'儘管它可能不會提供您所希望的格式對於。 –

+0

http://jsbin.com/jibecet/1/edit?js,console - 當我測試它時解析沒有錯誤。 – Quentin

+1

重新編輯:注意'inner'前面有''''的內容嗎?這意味着你正在關閉你的字符串。你需要逃避它。 '\「'。 –

回答

2

的問題是不是你的JSON(儘管它有它自己的問題)。

你已經嘗試用'字符,但它已經包含'字符所以你要逃避他們包裹它,將其轉換爲JavaScript字符串。

var json = '{"outer":"{\'inner\':{\'key\':\'value\'}}"}'; 

你最好可能是最好只把它當作一個對象字面:

var not_json = {"outer":"{'inner':{'key':'value'}}"}; 
console.log(not_json); 
+0

我甚至不確定他希望內部的JSON是一個字符串。可能是一個錯誤。 –

+0

感謝大家多數民衆贊成有用的,我想我需要首先用雙引號替換單引號,然後解析它 –

+0

@user_mda你可以但沒有把它寫成JSON然後解析它。你也可以做昆廷所說的,並把它作爲一個對象。 –