В чем разница между JSON и JavaScript объектом? [дубликат]



этот вопрос уже есть ответ здесь:



Я новичок в объектах JSON и JavaScript.




  • может кто-нибудь объяснить различия между JSON и JavaScript объектом?

  • какова их польза?

  • - один лучше другого? Или это зависит от ситуации?

  • когда использовать, какой, в какой ситуации?

  • почему был создан JSON в первую очередь? Какова была его основная цель?

  • может ли кто-нибудь привести примеры, когда следует использовать JSON, а не объект JavaScript и наоборот?

647   3  

3 ответов:

сначала вы должны знать, что такое JSON:

  • это язык агностик формат обмена данными.

синтаксис JSON был вдохновлен буквенной нотацией объекта JavaScript, но между ними есть различия.

например, в JSON all ключи должно быть заключено в кавычки, в то время как в объектных литералах это не обязательно:

// JSON:
{ "foo": "bar" }

// Object literal:
var o = { foo: "bar" };

кавычки обязательны для JSON, потому что в JavaScript (точнее в ECMAScript 3rd. Издание), использование зарезервированные слова поскольку имена свойств запрещены, например:

var o = { if: "foo" }; // SyntaxError in ES3

в то время как использование строкового литерала в качестве имени свойства (цитирование имени свойства) не дает никаких проблем:

var o = { "if": "foo" }; 

и "совместимость" (и легко eval'ING может быть?) котировки являются обязательными.

типы данных в JSON также ограничены следующим значения:

  • string
  • number
  • object
  • array
  • литерал а:
    • true
    • false
    • null

грамматика Strings изменения. Они обязательно быть заключено в двойные кавычки, в то время как в JavaScript, вы можете использовать одинарные или двойные кавычки попеременно.

// Invalid JSON:
{ "foo": 'bar' }

принятая грамматика JSON Numbers также изменения, в JavaScript вы можете использовать шестнадцатеричные литералы, например 0xFF, или (печально известные) Восьмеричные литералы, например 010. В JSON можно использовать только десятичные литералы.

// Invalid JSON:
{ "foo": 0xFF }

есть некоторые багги реализации (Firefox 3.5+, IE8+, json2.js) где восьмеричные литералы неправильно разрешены, например JSON.parse('01') должен производить SyntaxError.

JSON-это строковое представление объекта. Это совместимый формат сериализации. Он не привязан только к JavaScript. Например, существуют сериализаторы JSON для .NET, позволяющие сериализовать / десериализовать объекты .NET.

Так что это просто формат, позволяющий конвертировать из объектов в строку и обратно, что удобно, если вы хотите передать их по проводу.

это очень близко к представлению объекта javascript, и если вы просто eval() a Строка JSON вы получите соответствующий объект.

JSON-это формат обмена данными, который просто выглядит как подмножество кода YAML или JavaScript, который вы можете выполнить и вернуть объект. Объект JavaScript-это просто объект в JavaScript.

с JSON, являющимся форматом обмена данными, вы можете обмениваться структурированными данными в текстовой форме с ним. К настоящему времени он довольно отделен от JavaScript. Объект JavaScript позволяет создавать и работать со структурированными данными во время выполнения программы на JavaScript.

Comments

    Ничего не найдено.