From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- files/pl/json/index.html | 59 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 files/pl/json/index.html (limited to 'files/pl/json/index.html') diff --git a/files/pl/json/index.html b/files/pl/json/index.html new file mode 100644 index 0000000000..6d023ee69c --- /dev/null +++ b/files/pl/json/index.html @@ -0,0 +1,59 @@ +--- +title: JSON +slug: JSON +translation_of: Glossary/JSON +--- +

JSON (JavaScript Object Notation) jest formatem wymiany danych. Przypomina podzbiór składni JavaScriptu, choć nie jest nim w ścisłym sensie tego terminu. (Zobacz JSON w Dokumentacji JavaScript aby poznać szczegóły). Użyteczny w dowolnym rodzaju aplikacji opartej o JavaScript, m.in. na stronach internetowych i w rozszerzeniach przeglądarek. Przykładowo, dane użytkownika w formacie JSON mogą być przechowywane w ciasteczku (cookie), zaś preferencje rozszerzenia mogą być przechowywane w formacie JSON przez przeglądarkę.

+

JSON może przechowywać liczby (number), wartości logiczne (boolean), ciagi znaków (string), null, tablice (uporządkowane sekwencje wartości) oraz obiekty (zbiory odwzorowań ciąg znaków-wartość) złożone z powyższych wartości (lub z innych tablic i obiektów). Nie definiuje naturalnej reprezentacji dla bardziej złożonych typów danych, jak funkcje, wyrażenia regularne, daty itd. (Obiekty typu Date są domyślnie serializowane w postaci ciągu znaków zawierającego datę w formacie ISO, zatem choć nie zostają odtworzone w oryginalnym formacie, informacja nie jest bezpowrotnie tracona). Gdy niezbędne jest przechowanie tego rodzaju danych, można przekształcić wartości w momencie serializacji, lub przed ich deserializacją, umożliwiając w ten sposób przechowanie w JSON dodatkowych typów danych.

+

Użycie JSON poprzez obiekt JSON w JavaScripcie

+

Najprościej użyć JSON za pośrednictwem standardowego obiektu JSON w JavaScripcie. Użyj JSON.stringify do serializacji wartości w formacie JSON, natomiast do deserializacji - JSON.parse.

+

Na przykład, do serializacji obiektu JavaScript używamy metody JSON.stringify():

+
var foo = {};
+foo.bar = "new property";
+foo.baz = 3;
+
+var JSONfoo = JSON.stringify(foo);
+
+

JSONfoo ma teraz postać {"bar":"new property","baz":3}. Aby przywrócić JSONfoo do postaci obiektu JavaScript wystarczy wykonać:

+
var backToJS = JSON.parse(JSONfoo);
+
+

Więcej informacji znajdziesz w dokumentacji obiektu JSON.

+

Metoda toJSON()

+

Jeśli obiekt definiuje metodę toJSON(), wówczas JSON.stringify wywoła tę metodę aby określić reprezentację obiektu w formacie JSON. Na przykład:

+
x = {};
+x.foo = "foo";
+x.toJSON = function() { return "bar"; };
+var json1 = JSON.stringify(x);
+
+

json1 zawiera teraz '"bar"'.

+

Ograniczenia

+

Nie można serializować obiektu zawierającego funkcje. Specyfikacja JSON nie pozwala na takie działanie. Na przykład:

+
foo.qwerty = function(){alert('foobar');};
+foo.qwerty()
+var JSONfoo = JSON.toString(foo);
+
+

zwróci błąd TypeError on line XXX: No JSON representation for this object!

+

Użycie JSON poprzez nsIJSON

+

Wersje Firefoksa wcześniejsze niż 3.5 nie zawierały wsparcia dla formatu JSON, zaś jedynym sposobem dotarcia do funkcjonalności JSON było wykorzystanie komponentu nsIJSON, dostępnego począwszy od Firefox 3. Kodowanie i dekodowanie wykonywane są przez metody encode i decode komponentu nsIJSON. Metody te zakresem możliwości ustępują metodom dostarczanym przez obiekt JSON, zapewniając wsparcie jedynie tablicom i obiektom, z pominięciem ciągów znaków, wartości logicznych, liczb, czy null. (Wymienione wartości są obsługiwane jedynie wewnątrz tablic i obiektów: sama liczba 5 nie zadziała, lecz obiekt { "value": 5 } już tak).

+

Ze względu na ograniczenia nsIJSON, jego metody encode i decode zostały usunięte począwszy od wersji Firefox 7. Deweloperom zaleca się używanie obiektu JSON.

+

Poniższy kod serializuje obiekt JavaScript przy użyciu nsIJSON:

+
var Ci = Components.interfaces;
+var Cc = Components.classes;
+
+var foo = {};
+foo.bar = "new property";
+foo.baz = 3;
+
+var nativeJSON = Cc["@mozilla.org/dom/json;1"].createInstance(Ci.nsIJSON);
+var JSONfoo = nativeJSON.encode(foo);
+
+

Zmienna JSONfoo przyjmuje teraz wartość {"bar":"new property","baz":3}. Aby stworzyć obiekt odpowiadający JSONfoo, wystarczy wykonać:

+
var backToJS = nativeJSON.decode(JSONfoo);
+
+

Inne sposoby użycia JSON

+

Choć teoretycznie możliwe jest użycie JSON korzystając z eval (lecz tylko do deserializacji do obiektu, nie do serializacji do postaci ciągu znaków), lub z json2.js, nie jest to dobrym pomysłem. Parsowanie JSON przy użyciu eval nie jest bezpieczne, gdyż eval dopuszcza znacznie więcej rodzajów składni niż JSON (w tym nawet wykonywanie całkiem arbitralnego fragmentu kodu). Z kolei problemem json2.js jest dodawanie metod do wbudowanych obiektów, jak Object.prototype, co może skutkować błędami w kodzie, w którym nie przewidziano z góry takiej możliwości. Dlatego w niemal wszystkich przypadkach zaleca się pozostanie przy normalnych metodach użycia JSON. 

+

Zobacz także

+ +

{{ languages( { "ja": "ja/JSON", "zh-cn": "zh-cn/JSON" } ) }}

-- cgit v1.2.3-54-g00ecf