2012-12-15 103 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数据。一团糟。