2016-04-07 4 views
-4

У меня есть следующий код JSON:Недопустимый символ в JSON.parse

JSON_keyDataGrid = "{\"TABLE_DATA\":{\"COL_DATA\":[{\"field\":\"col_0\",\"title\":\"<a href=\"#\" onclick=\"alert(0);\">CODE</a>\",\"halign\":\"center\",\"align\":\"center\",\"width\":\"250\",\"sortable\":\"true\"},{\"field\":\"col_1\",\"title\":\"<a href=\"#\" onclick=\"alert(0);\">NAME</a>\",\"halign\":\"center\",\"align\":\"center\",\"width\":\"250\",\"sortable\":\"true\"}],\"ROW_DATA\":[{\"col_0\":\"<a href=\"#\" onclick=\"alert(1);\">11KAN</a>\",\"col_1\":\"<a href=\"#\" onclick=\"alert(1);\">KAN</a>\"}]}}" 


tableData = JSON.parse(JSON_keyDataGrid); //the error occurred here 

Когда я JSON.parse() это дает недопустимый символ, я не понимаю, почему.

Я проверил, является ли строка действительна по ссылке: JSONLint

Пожалуйста, может кто-нибудь помочь мне здесь,

Спасибо заранее.

ответ

3

От jsonlint:

{ 
    "TABLE_DATA": { 
     "COL_DATA": [{ 
      "field": "col_0", 
      "title": "<a href="# 
      " onclick=" 
      alert(0); 
      ">CODE</a>", 

Обратите внимание на # после закрытия " по стоимости title имущества.

+0

Спасибо большое, я не заметил, что там .... Тем не менее, я скопировал строку, как она есть на JSON lint url, и нажал на подтверждение. Это не показало мне эту ошибку там. –

+0

@D_ROCKS: Думаю, вы сделали целую строку, которая является действительной JSON, потому что это просто строка. Что вам нужно сделать, это посмотреть на содержимое * строки * и использовать это. Например, '' foo "' является действительным JSON: это строка. Но 'foo' недействителен JSON. Аналогично, если я правильно догадываюсь, вы проверили строку '' {\ "TABLE_DATA \": ...} "", когда вам нужно было проверить ее содержимое *, '{" TABLE_DATA ": ...} '. Строка * literal * не совпадает с строкой. –

Смежные вопросы