JSON
Z Wikipedii
JSON, JavaScript Object Notation (wymawiane jak imię "Jason" jā'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.
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 bardzo przydatny jako format wymiany danych w programowaniu aplikacji opartych o model AJAX. Można użyć skróconej notacji
myObject = eval("return " + json_data);
W typowych przypadkach dane w formacie JSON są pobierane z serwera przy wykorzystaniu obiektu XMLHttpRequest języka JavaScript.
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; eval(var the_object = "("+json_data+")"); } else { alert('Wystąpił problem z wybranym adresem URL.'); } http_request = null; } }
Wykorzystanie w tym przykładzie obiektu XMLHttpRequest nie jest przenośne pomiędzy przeglądarkami. Obiekt ten jest w tym przykładzie wykorzystywany asynchronicznie, co jest popularniejsze niż metoda synchroniczna.
[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.
Niektórzy programiści obeznani z językami programowania z rodziny języka C uważają, że JSON jest bardziej naturalny niż XML, natomiast inni uważają, że jego skąpa notacja jest myląca.
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 jednak łatwiejszy od niego do parsowania[1].
Przypisy
[edytuj] Zobacz też
- SOX (Simple Outline XML)
- S-expression

