Как вернуть строку из файла JavaScript в запрос Ajax [дубликат]

Решения здесь:

  1. Используйте None в качестве значения по умолчанию (или nonce object) и включите его, чтобы создать свои значения во время выполнения; или
  2. Используйте параметр lambda в качестве параметра по умолчанию и вызовите его в блоке try, чтобы получить значение по умолчанию (это то, что требуется для лямбда-абстракции).

Второй вариант хорош, потому что пользователи функции могут проходить в вызываемом, который может уже существовать (например, type)

62
задан outis 26 December 2011 в 12:14
поделиться

5 ответов

Некоторые современные браузеры поддерживают разбор JSON в собственный объект:

var var1 = '{"cols": [{"i" ....... 66}]}';
var result = JSON.parse(var1);

Для браузеров, которые его не поддерживают, вы можете скачать json2.js из json.org для безопасного анализа объекта JSON. Сценарий проверяет наличие встроенной поддержки JSON, и если он не существует, укажите вместо этого глобальный объект JSON. Если более быстрый, родной объект доступен, он просто выйдет из сценария, оставив его неповрежденным. Тем не менее, вы должны предоставить действительный JSON или он выкинет ошибку & mdash; вы можете проверить достоверность своего JSON с помощью http://jslint.com или http://jsonlint.com .

126
ответ дан Andy E 21 August 2018 в 05:51
поделиться

строка в вашем вопросе не является допустимой строкой json. Из json.org website :

JSON построен на двух структурах:

* A collection of name/value pairs. In various languages, this is 
  realized as an object, record, struct, dictionary, hash table, keyed list, or
  associative array.
* An ordered list of values. In most languages, this is realized as an
  array, vector, list, or sequence.

В принципе, строка json всегда будет начните с {или [.

Затем, когда @Andy E и @Cryo сказали, что вы можете проанализировать строку с помощью json2.js или некоторых других библиотек.

IMHO вам следует избегать eval, потому что это будет любая javascript-программа, поэтому вы можете столкнуться с проблемами безопасности.

5
ответ дан filippo 21 August 2018 в 05:51
поделиться

Строка, которую вы возвращаете, недействительна JSON. Имена в объектах должны быть кавычками, и вся строка должна быть помещена в { … } для формирования объекта. JSON также не может содержать что-то вроде new Date(). JSON - это всего лишь небольшое подмножество JavaScript, которое имеет только строки, числа, объекты, массивы, true, false и null.

См. Грамматику JSON для Дополнительная информация.

3
ответ дан Gumbo 21 August 2018 в 05:51
поделиться

Вы можете использовать эту библиотеку из JSON.org, чтобы перевести вашу строку в объект JSON.

var var1_obj = JSON.parse(var1);

Или вы можете использовать jquery-json .

var var1_obj = $.toJSON(var1);
3
ответ дан nortron 21 August 2018 в 05:51
поделиться

Вы можете использовать eval (jsonString), если вы доверяете данным в строке, в противном случае вам нужно будет проанализировать их правильно - проверьте json.org на некоторые примеры кода.

5
ответ дан whackamole 21 August 2018 в 05:51
поделиться
  • 1
    Могу ли я доверять контенту из API большого сайта (Reddit)? – user 29 August 2014 в 18:22
Другие вопросы по тегам:

Похожие вопросы: