Прототип и руководство по JSON

Введение в JSON

JSON (JavaScript Object Notation) - это облегченный формат обмена данными.

  • JSON легко читать и писать людям.

  • JSON легко анализировать и генерировать на машинах.

  • JSON основан на подмножестве языка программирования JavaScript.

  • JSON широко используется API-интерфейсами во всем Интернете и является быстрой альтернативой XML в запросах Ajax.

  • JSON - это текстовый формат, полностью независимый от языка.

Prototype 1.5.1 и более поздняя версия, поддерживает кодирование и анализ JSON.

Кодировка JSON

Prototype предоставляет следующие методы для кодирования -

NOTE - Убедитесь, что у вас установлена ​​как минимум версия 1.6 prototype.js.

S.No. Метод и описание
1. Number.toJSON ()

Возвращает строку JSON для заданного числа.

2. String.toJSON ()

Возвращает строку JSON для заданной строки.

3. Array.toJSON ()

Возвращает строку JSON для данного массива.

4. Hash.toJSON ()

Возвращает строку JSON для заданного хэша.

5. Date.toJSON ()

Преобразует дату в строку JSON (в соответствии с форматом ISO, используемым JSON).

6. Object.toJSON ()

Возвращает строку JSON для данного объекта.

Если вы не уверены в типе данных, которые вам нужно кодировать, лучше всего использовать Object.toJSON, поэтому -

var data = {name: 'Violet', occupation: 'character', age: 25 };
Object.toJSON(data);

Это даст следующий результат -

'{"name": "Violet", "occupation": "character", "age": 25}'

Кроме того, если вы используете настраиваемые объекты, вы можете установить свой собственный метод toJSON, который будет использоваться Object.toJSON . Например -

var Person = Class.create();
Person.prototype = {
   initialize: function(name, age) {
      this.name = name;
      this.age = age;
   },  
   toJSON: function() {
      return ('My name is ' + this.name + 
         ' and I am ' + this.age + ' years old.').toJSON();
   }
};
var john = new Person('John', 49);
Object.toJSON(john);

Это даст следующий результат -

'"My name is John and I am 49 years old."'

Разбор JSON

В JavaScript анализ JSON обычно выполняется путем оценки содержимого строки JSON. Prototype вводит String.evalJSON для решения этой проблемы . Например -

var d='{ "name":"Violet","occupation":"character" }'.evalJSON();
d.name;

Это даст следующий результат -

"Violet"

Использование JSON с Ajax

Использовать JSON с Ajax очень просто. Просто вызовите String.evalJSON в свойстве responseText транспорта -

new Ajax.Request('/some_url', {
   method:'get',
   onSuccess: function(transport) {
      var json = transport.responseText.evalJSON();
   }
});

Если ваши данные поступают из ненадежного источника, обязательно очистите его -

new Ajax.Request('/some_url', {
   method:'get',
   requestHeaders: {Accept: 'application/json'},
   onSuccess: function(transport) {
      var json = transport.responseText.evalJSON(true);
   }
});