Dzisiaj jest 19 stycznia 2025 r.
Chcę dodać własny artykuł

JSON

JSON – Lekki Format Wymiany Danych

JSON (JavaScript Object Notation) to tekstowy format wymiany danych, oparty na podzbiorze języka JavaScript. Jest niezależny od konkretnego języka programowania, co sprawia, że wiele języków, takich jak Python, Java, PHP, czy Ruby, oferuje wsparcie dla JSON-a poprzez różne biblioteki.

Wykorzystanie JSON

JSON jest często stosowany do przesyłania danych w aplikacjach opartych na AJAX. Dane są zwykle pobierane z serwera jako tekst i przekształcane w obiekt JavaScript. Standardowym kodowaniem jest UTF-8.

var http_request = new XMLHttpRequest();
var url = "http://serwer.pl/to/jest/tylko/test";
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;
            var the_object = JSON.parse(json_data);
        } else {
            alert('Wystąpił problem z wybranym adresem URL.');
        }
    }
}

Powyższy kod jest uproszczonym przykładem. Obiekt XMLHttpRequest nie jest dostępny we wszystkich przeglądarkach, co często wymaga użycia dodatkowych metod.

Składnia JSON

JSON stosuje literały obiektów, gdzie dane są reprezentowane jako pary klucz-wartość. Klucze są otoczone cudzysłowami, a wartości mogą być różnego typu, w tym stringami, liczbami, tablicami czy obiektami. Cała struktura jest zapisywana w formacie UTF-8.

Przykład JSON

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

Porównanie z XML

Dostęp do danych w JSON jest prostszy w JavaScript w porównaniu do XML, ponieważ JSON jest jego podzbiorem. Choć XML był kiedyś dominującym formatem w usługach sieciowych, JSON zyskuje na popularności, zwłaszcza w kontekście REST.

JSON zajmuje mniej miejsca niż XML, co jest istotne w przypadku urządzeń mobilnych. YAML, będący nadzbiorem JSON, jest bardziej złożony i trudniejszy do analizy niż JSON.

Bezpieczeństwo w JSON

Analiza danych JSON w JavaScript odbywa się za pomocą funkcji JSON.parse(), która jest bezpieczniejsza niż eval(), która może wykonywać złośliwy kod JavaScript. JSON.parse() wprowadzono w piątej wersji ECMAScript i może nie być dostępna w starszych przeglądarkach, ale istnieją alternatywy dla takich przypadków.