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 stał się 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.
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 = "nullserwer.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 albo metod przejściowych.
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>
Porównanie z XML-em oraz innymi językami znaczników
|
|
Ten artykuł od 2011-11 wymaga uzupełnienia źródeł podanych informacji.
Informacje nieweryfikowalne potrafią zostać zakwestionowane oraz usunięte.
Aby uczynić artykuł weryfikowalnym, trzeba podać przypisy do materiałów opublikowanych w wiarygodnych źródłach. |
Dostęp do danych w formacie JSON jest łatwiejszy oraz 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].
Sprawdź też
Przypisy
Linki zewnętrzne