Difference between revisions of "JSON/pl"

From Free Pascal wiki
Jump to navigationJump to search
(→‎JSON Object: tłumaczenie na j. polski)
(→‎Valid JSON format: tłumaczenie na j. polski)
Line 45: Line 45:
 
== Valid JSON format ==
 
== Valid JSON format ==
  
There are a few rules and guidelines that define the JSON syntax (see RFC 4627):
+
Istnieje kilka zasad i wytycznych, które definiują składnię JSON (patrz RFC 4627):
  
* JSON objects are encapsulated within opening and closing brackets <code>{ }</code>. An empty object can be represented by <code>{ }</code>
+
* Obiekty JSON są otoczone nawiasami klamrowymi otwierającymi i zamykającymi <code>{ }</code>. Pusty obiekt może być reprezentowany przez <code>{ }</code>
* Arrays are encapsulated within opening and closing square brackets <code>[ ]</code>. An empty array can be represented by <code>[ ]</code>
+
* Tablice są zamknięte w nawiasach kwadratowych otwierających i zamykających <code>[ ]</code>. Pusta tablica może być reprezentowana przez <code>[ ]</code>
* A member is represented by a key-value pair
+
* Pojedynczy element obiektu JSON reprezentowany jest przez parę klucz-wartość
* The key of a member should be contained in double quotes
+
* Klucz elementu powinien być zawarty w podwójnych cudzysłowach
* Each member SHOULD have a unique key within an object structure
+
* Każdy element POWINIEN mieć unikalny klucz w strukturze obiektu
* The value of a member must be contained in double quotes if it is a string
+
* Wartość elementu musi być zawarta w podwójnych cudzysłowach, jeśli jest to ciąg znaków
* Boolean values are represented using the '''true''' or '''false''' literals in lower case
+
* Wartości Boolean są reprezentowane za pomocą literałów '''true''' lub '''false''' zapisane małymi literami
* Number values are represented using double-precision floating-point format; Scientific notation is supported; Numbers should not have leading zeroes
+
* 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
* "Offensive" characters in a string need to be escaped using the backslash character
+
* Znaki „specjalne” w ciągu muszą być poprzedzone znakiem odwrotnego ukośnika
* Null values are represented by the '''null''' literal in lower case
+
* Wartości Null są reprezentowane przez literał '''null''' zapisany małymi literami
* Other object types, such as dates, are not natively supported and should be converted to strings; to be managed by the parser/client
+
* 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
* Each member of an object or each array value must be followed by a comma if it is not the last one
+
* Po każdym elemencie obiektu lub każdej wartości tablicy musi znajdować się przecinek, jeśli nie jest to ostatni element
* The common extension for json files is '''.json'''
+
* Typowym rozszerzeniem plików JSON jest '''.json'''
* The MIME type for json files is '''application/json'''
+
* Typ MIME dla plików JSON to '''application/json'''
  
 
== Implementations ==
 
== Implementations ==

Revision as of 22:55, 3 June 2020

English (en) suomi (fi) 日本語 (ja) 한국어 (ko) polski (pl) русский (ru) 中文(中国大陆)‎ (zh_CN)

Przegląd

JSON (JavaScript Object Notation) jest to znormalizowany format wymiany danych zapisanych przy użyciu prostego tekstu. Jak sama nazwa wskazuje, jest oparty na podstawie języka programowania JavaScript; jest jednak całkowicie niezależny od języka. Oprócz tego, że ludzie mogą go łatwo czytać i pisać pliki JSON, to maszyny również są w stanie parsować i generować te pliki.

W porównaniu z XML, jest bardziej czytelny dla człowieka.

Obiekt JSON

Obiekt JSON to nic innego jak zbiór oddzielonych przecinkami par nazwa/wartość (często nazywanych elementami) ujętych w nawiasy klamrowe:

{"name1":value1, "name2":value2 ...}

Aby ułatwić ludziom czytanie i wizualizację, par nazwa/wartość są one często wymienione pionowo:

{
	"name1": value1,
	"name2": value2
}

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:

  • prosty ciąg, wartość liczbowa, logiczna lub null (ciągi są ujęte w podwójne cudzysłowy):
    {"id":1, "name":"John Doe", "married":false}
  • tablica; który jest zbiorem wartości oddzielonych przecinkami w nawiasach kwadratowych:
    {"primeNumbers":[2, 3, 5, 7, 11, 13, 17], "oddNumbers":[1,3,5,7]}
  • obiekt; który jest zbiorem par nazwa/wartość zawartych w nawiasach klamrowych:
    {"address":{"street":"145 Koinange Street", "City":"Nairobi", "Country":"Kenya"}}

Obiekty JSON można zawsze zagnieżdżać dowolnie, aby tworzyć jeszcze bardziej złożone obiekty:

{"user":
	{	"userid": 1900,
		"username": "jsmith",
		"password": "secret",
		"groups": [ "admins", "users", "maintainers"]
	}
}

Sprawdź ten link, aby wyodrębnić informacje, gdy masz kilku użytkowników.

Valid JSON format

Istnieje kilka zasad i wytycznych, które definiują składnię JSON (patrz RFC 4627):

  • Obiekty JSON są otoczone nawiasami klamrowymi otwierającymi i zamykającymi { }. Pusty obiekt może być reprezentowany przez { }
  • Tablice są zamknięte w nawiasach kwadratowych otwierających i zamykających [ ]. Pusta tablica może być reprezentowana przez [ ]
  • Pojedynczy element obiektu JSON reprezentowany jest przez parę klucz-wartość
  • Klucz elementu powinien być zawarty w podwójnych cudzysłowach
  • Każdy element POWINIEN mieć unikalny klucz w strukturze obiektu
  • Wartość elementu musi być zawarta w podwójnych cudzysłowach, jeśli jest to ciąg znaków
  • Wartości Boolean są reprezentowane za pomocą literałów true lub false zapisane małymi literami
  • 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
  • Znaki „specjalne” w ciągu muszą być poprzedzone znakiem odwrotnego ukośnika
  • Wartości Null są reprezentowane przez literał null zapisany małymi literami
  • 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
  • Po każdym elemencie obiektu lub każdej wartości tablicy musi znajdować się przecinek, jeśli nie jest to ostatni element
  • Typowym rozszerzeniem plików JSON jest .json
  • Typ MIME dla plików JSON to application/json

Implementations

JSON implementation is not very strict, and a lot of leeway is granted to the client application and/or parser to enforce the guidelines. As usual when writing code:

  • be liberal in what you accept
  • be strict (adhering to the standard) in what you send.

There are two main implementations of JSON:

The official JSON Specification syntax

This implementation adheres strictly to the RFC 4627 guidelines above and does not allow deviation from the specification.

The Javascript syntax

This implementation follows the implementation of the Javascript programming language and as such allows for a few deviations from the official specification. For example:

  1. allows un-quoted keys eg {name: "John Doe" }
  2. allows single quotes for keys and/or string values; and a liberal mix of single and double quotes eg {'name': "John Doe", "language":'Pascal'}
  3. allows trailing comma after the last member of an array and/or object eg {"keywords":["if","begin","for",], "IDEs":["Lazarus","fpIDE","MSEide"],}

See also

[[:{{{NameWithoutSuffix}}}/ru|한국어 (ru)]]