diff options
Diffstat (limited to 'files/pl/web/javascript/referencje/obiekty/json/index.html')
| -rw-r--r-- | files/pl/web/javascript/referencje/obiekty/json/index.html | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/files/pl/web/javascript/referencje/obiekty/json/index.html b/files/pl/web/javascript/referencje/obiekty/json/index.html deleted file mode 100644 index 7a4b6c0812..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/json/index.html +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: JSON -slug: Web/JavaScript/Referencje/Obiekty/JSON -tags: - - JSON - - JavaScript - - Obiekt -translation_of: Web/JavaScript/Reference/Global_Objects/JSON ---- -<div>{{JSRef}}</div> - -<p>Obiekt <strong><code>JSON</code></strong> zawiera metody do analizy składniowej <a class="external" href="https://json.org/">JavaScript Object Notation</a> ({{glossary("JSON")}}) i konwertowania wartości do formatu JSON. Nie może być on wywołany lub utworzony i oprócz jego dwóch metod, sam w sobie nie ma interesującej funkcjonalności .</p> - -<h2 id="Różnice_między_językiem_JavaScript_i_formatem_JSON">Różnice między językiem JavaScript i formatem JSON</h2> - -<p>Format JSON jest składnią do serializowania obiektów, tablic, liczb, napisów, wartości logicznych oraz {{jsxref("null")}}. Bazuje na składni języka JavaScript, ale różni się od niego: <em>nie każdy</em> JavaScript to JSON.</p> - -<p><strong>Obiekty i tablice</strong>: Nazwy właściwości muszą znajdować się w podwójnym cudzysłowie; przecinki na końcach (<a href="https://wiki.developer.mozilla.org/pl/docs/Web/JavaScript/Reference/Trailing_commas">trailing commas</a>) nie są dozwolone.</p> - -<p><strong>Liczby</strong>: Zera nieznaczące są zakazane. Po przecinku musi się znaleźć co najmniej jedna liczba. Wartości NaN i Infinity nie są wspierane.</p> - -<p><strong>Każdy tekst w formacie JSON jest poprawnym wyrażeniem w języku JavaScript</strong> – ale wyłącznie w silnikach JavaScript, które mają zaimplementową możliwości, <a href="https://github.com/tc39/proposal-json-superset">by wszystkie dokumenty w formacie JSON były zgodne ze standardem ECMA-262</a>. W przeciwnym razie, znaki U+2028 (separator linii) i U+2029 (separator akapitów) są dozwolone w literałach znakowych i kluczach w formacie JSON, ale ich użycie w tym konteksie w języku JavaScript skutkuje zgłoszeniem błędu {{jsxref("SyntaxError")}}.</p> - -<p>Rozważmy przykład, gdzie funkcja {{jsxref("JSON.parse()")}} przetwarza poniższy literał znakowy jako obiekt JSON, a funkcja <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval">eval</a></code> wykonuje go jako tekst w języku JavaScript:</p> - -<pre class="brush: js">var code = '"\u2028\u2029"'; -JSON.parse(code); // działa poprawnie -eval(code); // zgłasza błąd SyntaxError -</pre> - -<p>Inne różnice to zgoda wyłącznie na literały znakowe w podwójnym cudzysłowie, brak zabezpieczenia dla {{jsxref("undefined")}} lub komentarzy.</p> - -<h2 id="Pełna_składnia_JSON">Pełna składnia JSON</h2> - -<p>Pełna składnia JSON jest następująca:</p> - -<pre class="syntaxbox"><var>JSON</var> = <strong>null</strong> - <em>or</em> <strong>true</strong> <em>or</em> <strong>false</strong> - <em>or</em> <var>JSONNumber</var> - <em>or</em> <var>JSONString</var> - <em>or</em> <var>JSONObject</var> - <em>or</em> <var>JSONArray</var> - -<var>JSONNumber</var> = <strong>-</strong> <var>PositiveNumber</var> - <em>or</em> <var>PositiveNumber</var> -<var>PositiveNumber</var> = DecimalNumber - <em>or</em> <var>DecimalNumber</var> <strong>.</strong> <var>Digits</var> - <em>or</em> <var>DecimalNumber</var> <strong>.</strong> <var>Digits</var> <var>ExponentPart</var> - <em>or</em> <var>DecimalNumber</var> <var>ExponentPart</var> -<var>DecimalNumber</var> = <strong>0</strong> - <em>or</em> <var>OneToNine</var> <var>Digits</var> -<var>ExponentPart</var> = <strong>e</strong> <var>Exponent</var> - <em>or</em> <strong>E</strong> <var>Exponent</var> -<var>Exponent</var> = <var>Digits</var> - <em>or</em> <strong>+</strong> <var>Digits</var> - <em>or</em> <strong>-</strong> <var>Digits</var> -<var>Digits</var> = <var>Digit</var> - <em>or</em> <var>Digits</var> <var>Digit</var> -<var>Digit</var> = <strong>0</strong> through <strong>9</strong> -<var>OneToNine</var> = <strong>1</strong> through <strong>9</strong> - -<var>JSONString</var> = <strong>""</strong> - <em>or</em> <strong>"</strong> <var>StringCharacters</var> <strong>"</strong> -<var>StringCharacters</var> = <var>StringCharacter</var> - <em>or</em> <var>StringCharacters</var> <var>StringCharacter</var> -<var>StringCharacter</var> = any character - <em>except</em> <strong>"</strong> <em>or</em> <strong>\</strong> <em>or</em> U+0000 through U+001F - <em>or</em> <var>EscapeSequence</var> -<var>EscapeSequence</var> = <strong>\"</strong> <em>or</em> <strong>\/</strong> <em>or</em> <strong>\\</strong> <em>or</em> <strong>\b</strong> <em>or</em> <strong>\f</strong> <em>or</em> <strong>\n</strong> <em>or</em> <strong>\r</strong> <em>or</em> <strong>\t</strong> - <em>or</em> <strong>\u</strong> <var>HexDigit</var> <var>HexDigit</var> <var>HexDigit</var> <var>HexDigit</var> -<var>HexDigit</var> = <strong>0</strong> through <strong>9</strong> - <em>or</em> <strong>A</strong> through <strong>F</strong> - <em>or</em> <strong>a</strong> through <strong>f</strong> - -<var>JSONObject</var> = <strong>{</strong> <strong>}</strong> - <em>or</em> <strong>{</strong> <var>Members</var> <strong>}</strong> -<var>Members</var> = <var>JSONString</var> <strong>:</strong> <var>JSON</var> - <em>or</em> <var>Members</var> <strong>,</strong> <var>JSONString</var> <strong>:</strong> <var>JSON</var> - -<var>JSONArray</var> = <strong>[</strong> <strong>]</strong> - <em>or</em> <strong>[</strong> <var>ArrayElements</var> <strong>]</strong> -<var>ArrayElements</var> = <var>JSON</var> - <em>or</em> <var>ArrayElements</var> <strong>,</strong> <var>JSON</var> -</pre> - -<p>Nieznaczące białe znaki nie mogą występować tylko wewnątrz <code><var>JSONNumber</var></code> (liczby nie mogą zawierać białych znaków) oraz <code><var>JSONString</var></code> (gdzie jest to interpretowane jako odpowiedni znak w litarale znakowym lub może spowodować błąd). Tabulacja pozioma (<a href="https://unicode-table.com/pl/#0009">U+0009</a>), powrót karetki (<a href="https://unicode-table.com/pl/#000D">U+000D</a>), nowa linia (<a href="https://unicode-table.com/pl/#000A">U+000A</a>) oraz spacja (<a href="https://unicode-table.com/pl/#0020">U+0020</a>) to jedyne prawidłowe białe znaki.</p> - -<h2 id="Metody">Metody</h2> - -<dl> - <dt>{{jsxref("JSON.parse()")}}</dt> - <dd>Parsuje literał znakowy na JSON, opcjonalnie przekształca otrzymaną wartosć i ją zwraca. Każde naruszenie składni JSON, wliczając w różnice między językiem JavaScript i JSON, powodują zgłosznie błędu {{jsxref("SyntaxError")}}. Opcja <code>reviver</code> pozwala zinterpretować, co <code>replacer</code> użył zamiast innych typów danych.</dd> - <dt>{{jsxref("JSON.stringify()")}}</dt> - <dd>Zwraca literał znakowy JSON odpowiadający określonej wartosci, ewentualnie zawierający jedynie niektóre wartości lub ze zamienionymi wartościami w sposób zdefinowany przez użytkownika. Domyślnie, wszystkie instance {{jsxref("undefined")}} są zastępowane przez {{jsxref("null")}} i inne niewspierane typy danych są ocenzurowywane. Opcja <code>replacer</code> pozwala określić inne zachowanie.</dd> -</dl> - -<h2 id="Specyfikacja">Specyfikacja</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Specification</th> - <th scope="col">Status</th> - <th scope="col">Comment</th> - </tr> - <tr> - <td>{{SpecName('ES5.1', '#sec-15.12', 'JSON')}}</td> - <td>{{Spec2('ES5.1')}}</td> - <td>Initial definition.</td> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-json-object', 'JSON')}}</td> - <td>{{Spec2('ES6')}}</td> - <td></td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-json-object', 'JSON')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td></td> - </tr> - </tbody> -</table> - -<h2 id="Kompatybilność">Kompatybilność</h2> - -<div> -<div> - - -<p>{{Compat("javascript.builtins.JSON")}}</p> -</div> -</div> - -<h2 id="Zobacz_także">Zobacz także</h2> - -<ul> - <li>{{jsxref("Date.prototype.toJSON()")}}</li> -</ul> - -<h2 id="Tools">Tools</h2> - -<ul> - <li><a href="http://jsoncompare.org/">JSON Diff</a> checker.</li> - <li><a href="http://jsonbeautifier.org/">JSON Beautifier/editor</a>.</li> - <li><a href="http://jsonparser.org/">JSON Parser</a></li> - <li><a href="https://tools.learningcontainer.com/json-validator/">JSON Validator</a>.</li> -</ul> |
