2016-01-24 2 views
0

Я сохранил эту строку в JavaScriptJSON.parse терпит неудачу на пространстве внутри массива

js_str= '{"id":"1","user_id":"1","cat_id":"1","name_bz":"Chitwan National Park","name_cf":"Gokarna","cf_lattitude":"27.525","cf_longitude":"87.56","boundry":"[[27.0656,85.255],[27.3564, 85.3564],[27.98998, 85.6898]]\n","area":"989.948","forest_conditon":"Poor","natural_regeneration":"High","grazing_pressure":"Medium","forest_type":"Natural","wild_species_list":"Tiger, Leopard, Rhino","others":null}'; 

Об использовании js_arr=JSON.parse(js_str) дает

SyntaxError: JSON.parse: bad control character in string literal at line 1 column 207 of the JSON data 

колонка 207 является пробел после запятой [27.3564, 85.3564]. Пробел в этом месте дает ошибку. Я не могу использовать регулярное выражение для удаления пробелов, поскольку он заменит все пробелы.

+0

Столбец 207 - это место. Каким может быть контрольный характер. – neogeomat

+0

Как вы получаете строку JSON от сервера? Добавьте этот код. – Tushar

ответ

3

Существует неправильное местонахождение или должно быть экранировано. Попробуйте изменить от:

"boundry":"[[27.0656,85.255],[27.3564, 85.3564],[27.98998, 85.6898]]\n" 

к:

"boundry":"[[27.0656,85.255],[27.3564, 85.3564],[27.98998, 85.6898]]" 

или избежать его:

"boundry":"[[27.0656,85.255],[27.3564, 85.3564],[27.98998, 85.6898]]\\n" 
+0

Это не проблема. Этот символ есть действительный JSON. –

+2

Я думаю, что \ n должен быть удален или экранирован –

+2

новый символ строки должен быть экранирован http://stackoverflow.com/questions/42068/how-do-i-handle-newlines-in-json –

3

Просто добавьте \ перед \n управляющий символ, и все будет хорошо. Парсер JSON работает так.

js_str= '{"id":"1","user_id":"1","cat_id":"1","name_bz":"Chitwan National Park","name_cf":"Gokarna","cf_lattitude":"27.525","cf_longitude":"87.56","boundry":"[[27.0656,85.255],[27.3564, 85.3564],[27.98998, 85.6898]]\\n","area":"989.948","forest_conditon":"Poor","natural_regeneration":"High","grazing_pressure":"Medium","forest_type":"Natural","wild_species_list":"Tiger, Leopard, Rhino","others":null}'; 

JSON.parse(js_str) 

Успешно протестирован код в Mozilla Firefox. enter image description here

+0

the \ n is как строка из базы данных. Я не могу его изменить. Есть ли другой способ. – neogeomat

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