Prototyp i samouczek JSON

Wprowadzenie do JSON

JSON (JavaScript Object Notation) to lekki format wymiany danych.

  • JSON jest łatwy do czytania i pisania dla ludzi.

  • JSON jest łatwy do analizowania i generowania przez maszyny.

  • JSON jest oparty na podzbiorze języka programowania JavaScript.

  • JSON jest szczególnie używany przez interfejsy API w całej sieci i jest szybką alternatywą dla XML w żądaniach Ajax.

  • JSON to format tekstowy, który jest całkowicie niezależny od języka.

Prototype 1.5.1 i nowsze wersje obsługują kodowanie JSON i obsługę analizowania.

Kodowanie JSON

Prototype zapewnia następujące metody kodowania -

NOTE - Upewnij się, że masz co najmniej wersję 1.6 pliku prototype.js.

S.No. Metoda i opis
1. Number.toJSON ()

Zwraca ciąg JSON dla podanej liczby.

2. String.toJSON ()

Zwraca ciąg JSON dla podanego ciągu.

3. Array.toJSON ()

Zwraca ciąg JSON dla podanej tablicy.

4. Hash.toJSON ()

Zwraca ciąg JSON dla podanego skrótu.

5. Date.toJSON ()

Konwertuje datę na ciąg JSON (zgodnie z formatem ISO używanym przez JSON).

6. Object.toJSON ()

Zwraca ciąg JSON dla danego obiektu.

Jeśli nie masz pewności co do typu danych, które chcesz zakodować, najlepiej jest użyć Object.toJSON, więc -

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

To da następujący wynik -

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

Ponadto, jeśli używasz obiektów niestandardowych, możesz ustawić własną metodę toJSON, która będzie używana przez Object.toJSON . Na przykład -

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);

To da następujący wynik -

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

Parsowanie JSON

W JavaScript analizowanie kodu JSON zwykle odbywa się poprzez ocenę zawartości ciągu JSON. Prototype wprowadza String.evalJSON, aby sobie z tym poradzić. Na przykład -

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

To da następujący wynik -

"Violet"

Używanie JSON z Ajax

Używanie JSON z Ajaxem jest bardzo proste. Po prostu wywołaj String.evalJSON na właściwości responseText transportu -

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

Jeśli Twoje dane pochodzą z niezaufanego źródła, pamiętaj o ich oczyszczeniu -

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