2012-12-15 128 views
3

我的JSON字符串,語法錯誤:意外的號碼(JSON.parse)

JSON.parse('{"start_date_time": ["2012-12-05 04:45:42.135000", "None"], "terminal_no": ["T1081", "None"], "master_doc_no": ["100008", "100008"], "notes": ["", ""], "doc_no": ["1000018", "1000019"], "location_code": ["1005", "1005"], "end_date_time": ["2012-12-05 05:27:04.529000", "None"], "doc_status": ["CC Ended", "Draft"], "bc_list": ["[{\"465\":\"85\"},{\"306\":\"6\"},{\"306\":\"47\"},{\"306\":\"366\"},{\"306\":\"634\"}]", "[{\"257\":\"14\"}]"]}') 

但它扔語法錯誤:意外的數

我在哪裏錯在這裏?

+0

使用JSONLint驗證正確性:http://jsonlint.com/是否還有關於錯誤的更多信息? –

+0

@HunterMcMillen,錯誤肯定會發生。把它扔到你的瀏覽器控制檯中。它與'bc_list'數據有關。 – Brad

回答

4

您可以通過簡化下來到發生問題,在bc_list開始...

JSON.parse('{"bc_list": ["", "{\"257\":\"14\"}]"]}') 

的問題是,你的反斜線正在考慮對JSON.parse(),而不是內部數據外引號。你也必須避開反斜槓。固定

JSON.parse('{"bc_list": ["", "{\\"257\\":\\"14\\"}]"]}') 

你的整條生產線就變成了:

JSON.parse('{"start_date_time": ["2012-12-05 04:45:42.135000", "None"], "terminal_no": ["T1081", "None"], "master_doc_no": ["100008", "100008"], "notes": ["", ""], "doc_no": ["1000018", "1000019"], "location_code": ["1005", "1005"], "end_date_time": ["2012-12-05 05:27:04.529000", "None"], "doc_status": ["CC Ended", "Draft"], "bc_list": ["[{\\"465\\":\\"85\\"},{\\"306\\":\\"6\\"},{\\"306\\":\\"47\\"},{\\"306\\":\\"366\\"},{\\"306\\":\\"634\\"}]", "[{\\"257\\":\\"14\\"}]"]}') 

沒有在JSON數據字符串中使用JSON數據。一團糟。