- Inne


Co to jest JSON?


Trudno zdefiniować JSON. Nie jest to technologia czy nowy język ale inne spojrzenie na to co już istnieje. Być może nawet samo odkodowanie tego skrótu da już nam dużo więcej informacji: "Java Script Object Notation", czyli format wymiany danych, podobnie jak XML. Jednak XML (eXtensible Markup Language) ma w porównaniu z JSONem jeden minus – do jego wykorzystania w projektach webmasterkich najczęściej potrzebujemy dodatkowych klas i obiektów (o czym więcej w poradzie klasa ObjTree).

JSON w JS może być szybko przetworzony w JS za pomocą funkcji eval(). Rozważmy przykładowe dane:(najpierw – trochę bardziej zrozumiałe, dla webmastera, dane w formacie XML):

<?xml version="1.0" encoding="utf-8"?>
    <dane>
        <user>
            <imie>jan</imie>
            <nazwisko>Kowalski</nazwisko>
        </user>
        <user>
            <imie>Piotr</imie>
            <nazwisko>Nowak</nazwisko>
        </user>
    </dane>

W JSON dane takie wyglądają następująco:

{
    "dane" : {
        "user" : [
            {
            "imie" : "Jan",
            "nazwisko" : "Kowalski"
            },
            {
            "imie" : "Piotr",
            "nazwisko" : "Nowak"
            }
        ]
    }
}

Przyjmijmy, że stosując AJAX takie dane otrzymujemy jako wynik działania skryptu na serwerze. W przypadku XML skorzystamy z metody responseXML() i następnie będziemy przetwarzać te dane – dla początkujące moze to trudne (jeśli się korzysta z gołego obiektu XMLHttpRequest). W przypadku JSONa, wystarczy taki oto kod:

/*     Stworzenie obiektu XMLHttpRequest
    wysłanie odpowiednich danych na serwer i uzykanie odpowiedzi
   /

 
    var json_tekst = HTTPrequest.responseText; // uzyskuje dane w postaci ciągu znaków
    eval("var json_obiekt = ("+json_tekst+")");
 
    for (i=0; i<json_obiekt.dane.user.length; i++)
      alert(json_obiekt.dane.user[i].imie + ' ' +json_obiekt.dane.user[i].nazwisko);
  

Oczywiście to tylko drobna część możliwości JSONa. Warto jednak o nim pamiętać, jeśli przyjdzie nam robić cokolwiek z danymi otrzymywanymi z serwera.

Zobacz też:

    * pl.wikipedia.org/wiki/JSON


InformacjeRaportuj | Drukuj

Data dodania: 01-10-2017 22:07Autor:misiek_spec
Ilość wyświetleń:494Komentarzy: 1
Komentarze
Bru2s dnia 15-10-2017 12:27
  Ja dodam od siebie, że od strony PHP, aby zamienić zwykłą tablice z danymi na format JSON wystarczy użyć funkcji
json_encode($array);

Dzieki temu możemy w prosty sposób załadować dane do tablicy i przesłać ajaxem do JS.
Dodaj komentarz
Zaloguj się, żeby móc dodawać komentarze.