Почему каждый раз, когда я делаю: -JSON.parse неожиданного маркер ы
JSON.parse('"something"')
это просто разбирает хорошо, но когда я делаю: -
var m = "something";
JSON.parse(m);
это дает мне ошибку говоря: -
Unexpected token s
Почему каждый раз, когда я делаю: -JSON.parse неожиданного маркер ы
JSON.parse('"something"')
это просто разбирает хорошо, но когда я делаю: -
var m = "something";
JSON.parse(m);
это дает мне ошибку говоря: -
Unexpected token s
Вы просите его разобрать текст JSON something
(не "something"
). Это недопустимо JSON, строки должны быть в двойных кавычках.
Если вы хотите эквивалент первого примера:
var s = '"something"';
var result = JSON.parse(s);
Переменные (something
) не действительны JSON, проверить с помощью http://jsonlint.com/
nice reference, thanks for sharing –
Поскольку JSON имеет строковый тип данных (это практически ничего между "
и "
). Он не имеет типа данных, который соответствует something
Что вы передаете методу JSON.parse должен быть корректным JSON после удаления оберточной кавычки строки.
так something
не является действительным JSON, но "something"
есть.
действительный JSON является -
JSON = null
/* boolean literal */
or true or false
/* A JavaScript Number Leading zeroes are prohibited; a decimal point must be followed by at least one digit.*/
or JSONNumber
/* Only a limited sets of characters may be escaped; certain control characters are prohibited; the Unicode line separator (U+2028) and paragraph separator (U+2029) characters are permitted; strings must be double-quoted.*/
or JSONString
/* Property names must be double-quoted strings; trailing commas are forbidden. */
or JSONObject
or JSONArray
Примеры -
JSON.parse('{}'); // {}
JSON.parse('true'); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null'); // null
JSON.parse("'foo'"); // error since string should be wrapped by double quotes
Вы можете посмотреть JSON.
Это полезно. Спасибо. – shriek
«что-то» недействительно JSON (он не включает цитаты). – bfavaretto
@SLaks анализируют его как обычную строку, но из всех ответов строковый литерал не является допустимым JSONstring. – shriek
Это уже строка. Нечего разбирать. – SLaks