JSONJavaScript Object Notation, JSON (wym. [ˈdʒeɪsən]) – lekki format wymiany danych komputerowych. JSON jest formatem tekstowym, bazującym na podzbiorze języka JavaScript. Typ MIME dla formatu JSON to 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, R, REBOL oraz Ruby. SkładniaKomunikat JSON jest literałem obiektu języka Javascript, który w tym języku jest tablicą asocjacyjną. Wszystkie dane są zmiennymi (nie stanowią kodu wykonywalnego), a nazwy składników (właściwości) obiektów są otoczone cudzysłowami. Wartości mogą być typu string (napis otoczony cudzysłowem), number (liczba typu double), stanowić jedną ze stałych: 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 YAML-u: menu:
id: file
popup:
menuitem:
- onclick: CreateNewDoc()
value: New
- onclick: OpenDoc()
value: Open
- onclick: CloseDoc()
value: Close
value: File
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>
WykorzystanieJSON jest jednym z nieformalnych sposobów przekazywania danych do aplikacji opartych na AJAX. W typowych przypadkach dane w formacie JSON są pobierane z serwera jako tekst przy wykorzystaniu obiektu 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 = JSON.parse(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 Porównanie z XML-em i innymi językami znacznikówDostęp do danych w formacie JSON jest bardziej naturalny z poziomu języka JavaScript niż dostęp do tych samych danych w formacie XML, ponieważ JSON stanowi składniowy podzbiór języka JavaScript. Wbrew podobieństwu w nazwie, nie jest już jednak tak naturalny dla Javy i wymaga stosowania specjalnych bibliotek. XML był początkowo jedynym językiem w usługach sieciowych, a więc dominującym przy sformalizowanej wymianie danych. Jednak w nowszych wersjach standardów dopuszczana jest także wymiana danych za pomocą JSON-a (np. w REST). XML może być łatwiejszy przy czytaniu dowolnego fragmentu dokumentu – ze względu na nazwę znacznika widoczną także w końcowym znaczniku. Jednak z tego samego względu XML w praktyce zajmuje znacząco więcej miejsca niż analogiczny obiekt przesyłany za pomocą formatu JSON. Ilość przesyłanych danych jest z kolei szczególnie istotna w związku z dużą popularnością urządzeń mobilnych (w szczególności smartfonów). YAML jest również językiem serializacji danych i stanowi nadzbiór języka JSON. JSON jest od niego jednak łatwiejszy do analizowania składni[4]. JSON.parse i bezpieczeństwo danych w przeglądarkachAnaliza składniowa (ang. parsing) danych w formacie JSON w JavaScript jest możliwe poprzez funkcję Należy zwrócić przy tym uwagę, że funkcja Zobacz teżPrzypisy
Linki zewnętrzne
|