JSON

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, szukaj

JSON, JavaScript Object Notation (wym. ˈdʒeɪsən) – lekki format wymiany danych komputerowych. JSON jest formatem tekstowym, będącym podzbiorem języka JavaScript. Typ MIME dla formatu JSON to application/json. Format został opisany w dokumencie RFC 4627.

Pomimo nazwy JSON jest formatem niezależnym od konkretnego języka. Wiele języków programowania obsługuje ten format danych przez dodatkowe pakiety bądź biblioteki. Wśród nich są ActionScript, C, C++, C#, ColdFusion, E, Java, JavaScript, ML, Objective CAML, Perl, PHP, Python, REBOL oraz Ruby.

Spis treści

[edytuj] Wykorzystanie

JSON jest jednym z nieformalnych sposobów przekazywania danych do aplikacji opartych o AJAX. W typowych przypadkach dane w formacie JSON są pobierane z serwera jako tekst przy wykorzystaniu obiektu XMLHttpRequest języka JavaScript, a następnie przekształcane w obiekt.

 var http_request = new XMLHttpRequest();
 var url = "http://serwer.pl/to/jest/tylko/test"; // adres z danymi w formacie JSON
 
 // pobierz dane w formacie JSON z serwera
 http_request.onreadystatechange = handle_json;
 http_request.open("GET", url);
 http_request.send(null);
 
 function handle_json() {
        if (http_request.readyState == 4) {
                if (http_request.status == 200) {
                        var json_data = http_request.responseText; // pobranie tekstu
                        var the_object = eval("("+json_data+")");  // zamiana tekstu na obiekt JSON
                } else {
                        alert('Wystąpił problem z wybranym adresem URL.');
                }
                http_request = null;
        }
 }

Powyższy kod jest znacząco uproszczony. Wykorzystany w tym przykładzie obiekt XMLHttpRequest nie jest dostępny we wszystkich przeglądarkach. W normalnych warunkach używa się dodatkowych funkcji lub metod przejściowych.

[edytuj] Przykład

 {"menu": {
   "id": "file",
   "value": "File",
   "popup": {
     "menuitem": [
       {"value": "New", "onclick": "CreateNewDoc()"},
       {"value": "Open", "onclick": "OpenDoc()"},
       {"value": "Close", "onclick": "CloseDoc()"}
     ]
   }
 }}

Powyższe dane zapisane w XML-u:

 <menu id="file" value="File">
   <popup>
     <menuitem value="New" onclick="CreateNewDoc()" />
     <menuitem value="Open" onclick="OpenDoc()" />
     <menuitem value="Close" onclick="CloseDoc()" />
   </popup>
 </menu>

[edytuj] Porównanie z XML-em i innymi językami znaczników

Dostęp do danych w formacie JSON jest łatwiejszy i szybszy z poziomu języka JavaScript niż dostęp do tych samych danych w formacie XML. Również analiza składniowa takich danych jest prostsza.

XML jest szerzej obsługiwany przez przemysł informatyczny, przez co istnieje więcej narzędzi programistycznych do wykorzystania po stronie serwera. Analizowanie danych po stronie klienta jest obsługiwane bezpośrednio przez funkcję eval() języka JavaScript.

Żaden z tych formatów nie udostępnia bogatego mechanizmu reprezentacji dużych ilości danych w postaci binarnej.

YAML, język serializacji danych, jest nadzbiorem języka JSON. JSON jest od niego jednak łatwiejszy do parsowania[1].

[edytuj] Zobacz też

Przypisy

[edytuj] Linki zewnętrzne

Osobiste
Przestrzenie nazw
Warianty
Działania
Nawigacja
Dla czytelników
Dla wikipedystów
Drukuj lub eksportuj
Narzędzia
W innych językach