Sign in Join
Wiki copytemporary

JSON/pl: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: JSON/pl

OldNewLine
1+## Przegląd
2+
3+[JSON](http://www.json.org) (JavaScript Object Notation) jest to znormalizowany format wymiany danych zapisanych przy użyciu zwykłego tekstu. Jak sama nazwa wskazuje, jest on oparty na podstawie języka programowania [[JavaScript]]; jest jednak całkowicie niezależny od języka. Oprócz tego, że ludzie mogą łatwo czytać i pisać pliki JSON, to maszyny również są w stanie parsować i generować te pliki.
4+
5+W porównaniu z [[XML]], jest bardziej czytelny dla człowieka.
6+
7+## Obiekt JSON
8+
9+Obiekt JSON to nic innego jak zbiór oddzielonych przecinkami par nazwa/wartość (często nazywanych elementami) ujętych w nawiasy klamrowe:
10+
11+``` javascript
12+{"name1":value1, "name2":value2 ...}
13+```
14+
15+Aby ułatwić ludziom czytanie i wizualizację JSON, pary nazwa/wartość są często wymienione pionowo:
16+
17+``` javascript
18+{
19+ "name1": value1,
20+ "name2": value2
21+}
22+```
23+
24+Nazwa jest łańcuchem znaków ujętych w podwójnych cudzysłowach, a wartością może być jedna z następujących opcji:
25+
26+- prosty ciąg, wartość liczbowa, logiczna lub null (ciągi są ujęte w podwójne cudzysłowy):\
27+ `{"id":1, "name":"John Doe", "married":false}`
28+
29+- tablica; która jest zbiorem wartości oddzielonych przecinkami w nawiasach kwadratowych:\
30+ `{"primeNumbers":[2, 3, 5, 7, 11, 13, 17], "oddNumbers":[1,3,5,7]}`
31+
32+- obiekt; który jest zbiorem par nazwa/wartość zawartych w nawiasach klamrowych:\
33+ `{"address":{"street":"145 Koinange Street", "City":"Nairobi", "Country":"Kenya"}}`
34+
35+Obiekty JSON można zagnieżdżać dowolnie, aby tworzyć jeszcze bardziej złożone obiekty:
36+
37+``` javascript
38+{"user":
39+ { "userid": 1900,
40+ "username": "jsmith",
41+ "password": "secret",
42+ "groups": [ "admins", "users", "maintainers"]
43+ }
44+}
45+```
46+
47+Sprawdź ten [[fcl-json|link]], aby wyodrębnić informacje, gdy masz kilku użytkowników.
48+
49+## Prawidłowy format JSON
50+
51+Istnieje kilka zasad i wytycznych, które definiują składnię JSON (patrz RFC 4627):
52+
53+- Obiekty JSON są otoczone nawiasami klamrowymi otwierającymi i zamykającymi `{ }`. Pusty obiekt może być reprezentowany przez `{ }`
54+- Tablice są zamknięte w nawiasy kwadratowe otwierające i zamykające `[ ]`. Pusta tablica może być reprezentowana przez `[ ]`
55+- Pojedynczy element obiektu JSON reprezentowany jest przez parę klucz-wartość
56+- Klucz elementu powinien być zawarty w podwójnych cudzysłowach
57+- Każdy element POWINIEN mieć unikalny klucz w strukturze obiektu
58+- Wartość elementu musi być zawarta w podwójnych cudzysłowach, jeśli jest to ciąg znaków
59+- Wartości Boolean są reprezentowane za pomocą literałów **true** lub **false** zapisane małymi literami
60+- Wartości liczbowe są reprezentowane przy użyciu formatu zmiennoprzecinkowego podwójnej precyzji; Obsługiwany jest także zapis naukowy; Liczby nie powinny mieć wiodących zer
61+- Znaki „specjalne” w ciągu muszą być poprzedzone znakiem odwrotnego ukośnika
62+- Wartości Null są reprezentowane przez literał **null** zapisany małymi literami
63+- Inne typy obiektów, takie jak daty, nie są natywnie obsługiwane i powinny zostać przekonwertowane na ciągi; do zarządzania przez analizator składni/klienta
64+- Po każdym elemencie obiektu lub każdej wartości tablicy musi znajdować się przecinek, jeśli nie jest to ostatni element
65+- Typowym rozszerzeniem plików JSON jest **.json**
66+- Typ MIME dla plików JSON to **application/json**
67+
68+## Implementacja
69+
70+Implementacja JSON nie jest bardzo rygorystyczna, a aplikacja kliencka i/lub analizator składni mają dużo swobody w egzekwowaniu wytycznych. Ale, jak zwykle podczas pisania kodu
71+
72+- bądź tolerancyjny w tym, co akceptujesz
73+- bądź rygorystyczny (przestrzegając standardu) w tym co wysyłasz.
74+
75+Istnieją dwie główne implementacje JSON:
76+
77+### Oficjalna składnia specyfikacji JSON
78+
79+Ta implementacja jest ściśle zgodna z wytycznymi dokumentu [RFC 8259](https://tools.ietf.org/html/rfc8259) i nie pozwala na odstępstwa od specyfikacji.
80+
81+### Składnia JavaScript
82+
83+Ta implementacja wynika z implementacji języka programowania JavaScript i jako taka pozwala na kilka odchyleń od oficjalnej specyfikacji. Na przykład:
84+
85+1. dopuszcza klucze bez cudzysłowu, np. `{name: "John Doe" }`
86+2. dopuszcza pojedyncze cudzysłowy dla kluczy i/lub wartości łańcuchowych; oraz toleruje mieszanie pojedynczych i podwójnych cudzysłowów, np. `{'name': "John Doe", "language":'Pascal'}`
87+3. zezwala na końcowy przecinek po ostatnim elemencie tablicy i/lub obiektu, np. `{"keywords":["if","begin","for",], "IDEs":["Lazarus","fpIDE","MSEide"],}`
88+
89+## Zobacz też
90+
91+- [[fcl-json/pl]] Pakiet implementujący JSON dla FreePascal i Lazarus
92+- [Oficjalna strona JSON](http://www.json.org)
93+- [[Streaming JSON/de]] - (Oryginalny niemiecki artykuł)
94+- [[Streaming JSON/ru]] - (Tłumaczenie rosyjskie z angielskiego)
95+- [[Streaming JSON/ko]] - (Tłumaczenie koreańskie z angielskiego)
96+- [[Streaming JSON]] - (Tłumaczenie na język angielski z oryginalnego niemieckiego)
97+- [Formater JSON](https://jsonformatter.org)
98+
99+---
100+*From the Free Pascal wiki, page "JSON/pl", as it stood on 2020-06-26 after a change by Slawek, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
101+Category: JSON

Back to history