mirror of
https://github.com/php/doc-ru.git
synced 2025-08-15 23:42:35 +00:00
JavaScript Object Notation: improvements
git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@343706 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
@ -15,7 +15,7 @@
|
||||
xlink:href="&url.json;">JavaScript Object Notation (JSON)</link>
|
||||
Обработка в PHP5 осуществляется парсером, построенном на JSON_checker от
|
||||
Дугласа Крокфорда (Douglas Crockford). В PHP 7 используется полностью
|
||||
новый парсер, написанный специально для PHP и под его лицензией.
|
||||
новый и улучшенный парсер, написанный специально для PHP и под его лицензией.
|
||||
</para>
|
||||
&json.implementation.superset;
|
||||
</preface>
|
||||
|
@ -54,7 +54,7 @@
|
||||
</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
Ошибка управляющих символов, вероятно из-за неверного кодирования.
|
||||
Ошибка управляющих символов, вероятно, из-за неверного кодирования.
|
||||
Доступна начиная с PHP 5.3.0.
|
||||
</simpara>
|
||||
</listitem>
|
||||
@ -104,7 +104,7 @@
|
||||
</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
Значение, переданное в функцию <function>json_encode</function> включает либо
|
||||
Значение, переданное в функцию <function>json_encode</function>, включает либо
|
||||
<link linkend="language.types.float.nan"><constant>NAN</constant></link>,
|
||||
либо <link linkend="function.is-infinite"><constant>INF</constant></link>.
|
||||
Если была указана константа <constant>JSON_PARTIAL_OUTPUT_ON_ERROR</constant>,
|
||||
@ -167,7 +167,7 @@
|
||||
</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
Декодирует длинные целочисленные значения как строку.
|
||||
Декодирует большие целые числа в качестве исходного значения строки.
|
||||
Доступно с PHP 5.4.0.
|
||||
</simpara>
|
||||
</listitem>
|
||||
@ -249,7 +249,7 @@
|
||||
<simpara>
|
||||
Выдавать объект вместо массива при использовании неассоциативного
|
||||
массива. Это полезно, когда принимающая программа или код ожидают
|
||||
объект или же массив пуст.
|
||||
объект, а массив пуст.
|
||||
Доступна начиная с PHP 5.3.0.
|
||||
</simpara>
|
||||
</listitem>
|
||||
@ -297,7 +297,7 @@
|
||||
</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
Не кодировать многобайтные символы Unicode (по умолчанию они кодируются как \uXXXX).
|
||||
Не кодировать многобайтовые символы Unicode (по умолчанию они кодируются как \uXXXX).
|
||||
Доступна начиная с PHP 5.4.0.
|
||||
</simpara>
|
||||
</listitem>
|
||||
@ -336,7 +336,7 @@
|
||||
</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
Символы конца строки не будут экранироваться если задана константа
|
||||
Символы конца строки не будут экранироваться, если задана константа
|
||||
<constant>JSON_UNESCAPED_UNICODE</constant>. Поведение будет таким же,
|
||||
какое оно было до PHP 7.1 без этой константы.
|
||||
Доступно с PHP 7.1.0.
|
||||
|
@ -5,7 +5,7 @@
|
||||
<refentry xml:id="function.json-decode" xmlns="http://docbook.org/ns/docbook">
|
||||
<refnamediv>
|
||||
<refname>json_decode</refname>
|
||||
<refpurpose>Декодирует JSON строку</refpurpose>
|
||||
<refpurpose>Декодирует строку JSON</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1 role="description">
|
||||
@ -33,7 +33,7 @@
|
||||
<parameter>json</parameter> строка (<type>string</type>) для декодирования.
|
||||
</para>
|
||||
<para>
|
||||
Эта функция работает только со строками в UTF-8 кодировке.
|
||||
Эта функция работает только со строками в кодировке UTF-8.
|
||||
</para>
|
||||
&json.implementation.superset;
|
||||
</listitem>
|
||||
@ -60,10 +60,10 @@
|
||||
<para>
|
||||
Битовая маска опций декодирования JSON. В настоящий момент поддерживается только
|
||||
две опции.
|
||||
<constant>JSON_BIGINT_AS_STRING</constant> - позволяет конвертировать большие
|
||||
целые в строки, а не в рациональные (<type>float</type>) числа, что происходит
|
||||
Первая из них - <constant>JSON_BIGINT_AS_STRING</constant>, позволяет конвертировать большие
|
||||
целые числа в строки, а не в числа с плавающей точкой (<type>float</type>), что происходит
|
||||
по умолчанию.
|
||||
<constant>JSON_OBJECT_AS_ARRAY</constant> - действует так же, как если задать
|
||||
Вторая опция - <constant>JSON_OBJECT_AS_ARRAY</constant>, действует так же, как если был задан
|
||||
<parameter>assoc</parameter> равным &true;.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -88,7 +88,7 @@
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>json_decode</function></title>
|
||||
<title>Примеры использования <function>json_decode</function></title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
@ -124,8 +124,8 @@ array(5) {
|
||||
<example>
|
||||
<title>Доступ к свойствам объектов с неправильными именами</title>
|
||||
<simpara>
|
||||
Доступ к элементам объекта, которые содержат символы недопустимые
|
||||
согласно соглашению об именах PHP (т.е. дефис), может производиться
|
||||
Доступ к элементам объекта, которые содержат символы, недопустимые
|
||||
в соответствии с соглашением об именах PHP (то есть дефис), может быть выполнен
|
||||
путем обрамления имени элемента фигурными скобками и апострофами.
|
||||
</simpara>
|
||||
<programlisting role="php">
|
||||
@ -147,7 +147,7 @@ print $obj->{'foo-bar'}; // 12345
|
||||
<![CDATA[
|
||||
<?php
|
||||
|
||||
// Следующие строки являются валидным кодом JavaScript, но не валидными JSON данными
|
||||
// Следующие строки являются валидным кодом JavaScript, но не валидными JSON-данными
|
||||
|
||||
// Имя и значение должны помещаться в двойные кавычки
|
||||
// Одинарные кавычки использовать нельзя
|
||||
@ -199,7 +199,7 @@ foreach ($constants["json"] as $name => $value) {
|
||||
// Отображаем ошибки для разных глубин рекурсий
|
||||
foreach (range(4, 3, -1) as $depth) {
|
||||
var_dump(json_decode($json, true, $depth));
|
||||
echo 'Last error: ', $json_errors[json_last_error()], PHP_EOL, PHP_EOL;
|
||||
echo 'Последняя ошибка: ', $json_errors[json_last_error()], PHP_EOL, PHP_EOL;
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
@ -226,10 +226,10 @@ array(1) {
|
||||
}
|
||||
}
|
||||
}
|
||||
Last error: JSON_ERROR_NONE
|
||||
Последняя ошибка: JSON_ERROR_NONE
|
||||
|
||||
NULL
|
||||
Last error: JSON_ERROR_DEPTH
|
||||
Последняя ошибка: JSON_ERROR_DEPTH
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
@ -267,7 +267,7 @@ object(stdClass)#1 (1) {
|
||||
&reftitle.notes;
|
||||
<note>
|
||||
<para>
|
||||
Спецификация JSON не тоже самое, что и JavaScript, но является его частью.
|
||||
Спецификация JSON - это не JavaScript, а его подмножество.
|
||||
</para>
|
||||
</note>
|
||||
<note>
|
||||
@ -300,7 +300,7 @@ object(stdClass)#1 (1) {
|
||||
<row>
|
||||
<entry>7.0.0</entry>
|
||||
<entry>
|
||||
Отклонены несовместимые форматы чисел RFC 7159 - высший уровень
|
||||
Отклонены несовместимые форматы чисел RFC 7159 - верхний уровень
|
||||
(07, 0xff, .1, -.1) и на всех уровнях ([1.], [1.e1])
|
||||
</entry>
|
||||
</row>
|
||||
@ -317,7 +317,7 @@ object(stdClass)#1 (1) {
|
||||
<entry>
|
||||
Недопустимые варианты <literal>true</literal>,
|
||||
<literal>false</literal> и <literal>null</literal> не в нижнем регистре больше
|
||||
не допускаются во входящих данных, и приводят к предупреждениям.
|
||||
не принимают в качестве допустимого ввода и будут генерировать предупреждения.
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
@ -330,7 +330,7 @@ object(stdClass)#1 (1) {
|
||||
<entry>5.3.0</entry>
|
||||
<entry>
|
||||
Добавлен опциональный параметр <parameter>depth</parameter>.
|
||||
Глубина рекурсии по умолчанию увеличено с 128 до 512
|
||||
Глубина рекурсии по умолчанию увеличена с 128 до 512
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
|
@ -17,11 +17,11 @@
|
||||
<methodparam choice="opt"><type>int</type><parameter>depth</parameter><initializer>512</initializer></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
Возвращает строку, содержащую JSON-представление <parameter>value</parameter>.
|
||||
Возвращает строку, содержащую JSON-представление для указанного <parameter>value</parameter>.
|
||||
</para>
|
||||
<para>
|
||||
На кодирование влияет параметр <parameter>options</parameter> и,
|
||||
дополнительно, кодирование значений типа float зависит от значения
|
||||
кроме того, кодирование значений типа float зависит от значения
|
||||
<link linkend="ini.serialize-precision">serialize_precision</link>.
|
||||
</para>
|
||||
</refsect1>
|
||||
@ -79,7 +79,7 @@
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Возвращает JSON строку (<type>string</type>) &return.falseforfailure;.
|
||||
Возвращает строку (<type>string</type>), закодированную JSON &return.falseforfailure;.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
@ -189,22 +189,22 @@ echo json_encode($arr);
|
||||
$a = array('<foo>',"'bar'",'"baz"','&blong&', "\xc3\xa9");
|
||||
|
||||
echo "Обычно: ", json_encode($a), "\n";
|
||||
echo "Тэги: ", json_encode($a, JSON_HEX_TAG), "\n";
|
||||
echo "Теги: ", json_encode($a, JSON_HEX_TAG), "\n";
|
||||
echo "Апострофы: ", json_encode($a, JSON_HEX_APOS), "\n";
|
||||
echo "Кавычки: ", json_encode($a, JSON_HEX_QUOT), "\n";
|
||||
echo "Амперсанты: ", json_encode($a, JSON_HEX_AMP), "\n";
|
||||
echo "Амперсанды: ", json_encode($a, JSON_HEX_AMP), "\n";
|
||||
echo "Юникод: ", json_encode($a, JSON_UNESCAPED_UNICODE), "\n";
|
||||
echo "Все: ", json_encode($a, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE), "\n\n";
|
||||
|
||||
$b = array();
|
||||
|
||||
echo "Пустой массива как массив: ", json_encode($b), "\n";
|
||||
echo "Пустой массив как объект: ", json_encode($b, JSON_FORCE_OBJECT), "\n\n";
|
||||
echo "Отображение пустого массива как массива: ", json_encode($b), "\n";
|
||||
echo "Отображение неассоциативного массива как объекта: ", json_encode($b, JSON_FORCE_OBJECT), "\n\n";
|
||||
|
||||
$c = array(array(1,2,3));
|
||||
|
||||
echo "Неассоциативный массив как массив: ", json_encode($c), "\n";
|
||||
echo "Неассоциативный массив как объект: ", json_encode($c, JSON_FORCE_OBJECT), "\n\n";
|
||||
echo "Отображение неассоциативного массива как массива: ", json_encode($c), "\n";
|
||||
echo "Отображение неассоциативного массива как объекта: ", json_encode($c, JSON_FORCE_OBJECT), "\n\n";
|
||||
|
||||
$d = array('foo' => 'bar', 'baz' => 'long');
|
||||
|
||||
@ -225,7 +225,7 @@ Unicode: ["<foo>","'bar'","\"baz\"","&blong&","é"]
|
||||
Все: ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026","é"]
|
||||
|
||||
Отображение пустого массива как массива: []
|
||||
Отображение не ассоциативного массива как объекта: {}
|
||||
Отображение неассоциативного массива как объекта: {}
|
||||
|
||||
Отображение неассоциативного массива как массива: [[1,2,3]]
|
||||
Отображение неассоциативного массива как объекта: {"0":{"0":1,"1":2,"2":3}}
|
||||
@ -391,7 +391,7 @@ string(2) "12"
|
||||
<note>
|
||||
<para>
|
||||
Как и эталонный кодировщик JSON, <function>json_encode</function>
|
||||
будет создавать JSON в виде простого значения (т.е. не объект и не массив),
|
||||
будет создавать JSON в виде простого значения (то есть не объект и не массив),
|
||||
если ему переданы <type>string</type>, <type>integer</type>,
|
||||
<type>float</type> или <type>boolean</type> в качестве входящего значения
|
||||
<parameter>value</parameter>. Большинство декодеров воспринимают эти значения
|
||||
@ -399,7 +399,7 @@ string(2) "12"
|
||||
на этот счет.
|
||||
</para>
|
||||
<para>
|
||||
Всегда проверяйте, что ваш JSON декодер может правильно обрабатывать
|
||||
Всегда проверяйте, что ваш декодер JSON может правильно обрабатывать
|
||||
данные, которые вы создаете с помощью <function>json_encode</function>.
|
||||
</para>
|
||||
</note>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<refentry xml:id="function.json-last-error-msg" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refnamediv>
|
||||
<refname>json_last_error_msg</refname>
|
||||
<refpurpose>Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode() </refpurpose>
|
||||
<refpurpose>Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1 role="description">
|
||||
@ -29,7 +29,9 @@
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Возвращает сообщение об ошибке в случае успеха, <literal>"No Error"</literal> если ошибки не произошло, &return.falseforfailure;.
|
||||
Возвращает сообщение об ошибке в случае успешного выполнения,
|
||||
<literal>"No Error"</literal> если ошибки не произошло,
|
||||
&return.falseforfailure;.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
|
@ -15,7 +15,8 @@
|
||||
<void />
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
Если при последнем JSON кодировании/декодировании возникла ошибка, то возвращает её код.
|
||||
Возвращает последнюю ошибку (если она есть),
|
||||
произошедшую во время последнего кодирования/декодирования JSON.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
@ -53,7 +54,7 @@
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>JSON_ERROR_STATE_MISMATCH</constant></entry>
|
||||
<entry>Неверный или не корректный JSON</entry>
|
||||
<entry>Неверный или некорректный JSON</entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
@ -134,16 +135,16 @@ foreach ($json as $string) {
|
||||
echo ' - Достигнута максимальная глубина стека';
|
||||
break;
|
||||
case JSON_ERROR_STATE_MISMATCH:
|
||||
echo ' - Некорректные разряды или не совпадение режимов';
|
||||
echo ' - Некорректные разряды или несоответствие режимов';
|
||||
break;
|
||||
case JSON_ERROR_CTRL_CHAR:
|
||||
echo ' - Некорректный управляющий символ';
|
||||
break;
|
||||
case JSON_ERROR_SYNTAX:
|
||||
echo ' - Синтаксическая ошибка, не корректный JSON';
|
||||
echo ' - Синтаксическая ошибка, некорректный JSON';
|
||||
break;
|
||||
case JSON_ERROR_UTF8:
|
||||
echo ' - Некорректные символы UTF-8, возможно неверная кодировка';
|
||||
echo ' - Некорректные символы UTF-8, возможно неверно закодирован';
|
||||
break;
|
||||
default:
|
||||
echo ' - Неизвестная ошибка';
|
||||
@ -170,7 +171,7 @@ foreach ($json as $string) {
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
// Некорректная последователньость UTF8
|
||||
// Некорректная последовательность UTF8
|
||||
$text = "\xB1\x31";
|
||||
|
||||
$json = json_encode($text);
|
||||
|
@ -15,7 +15,7 @@
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
Объекты, реализующие интерфейс <interfacename>JsonSerializable</interfacename>,
|
||||
могут адаптировать свое JSON-представление когда кодируются с помощью
|
||||
могут модифицировать свое JSON-представление при кодировании с помощью
|
||||
<function>json_encode</function>.
|
||||
</para>
|
||||
</section>
|
||||
|
@ -16,7 +16,7 @@
|
||||
<void />
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
Сериализует объект в значение, которое в свою очередь может быть сериализовано
|
||||
Сериализует объект в значение, которое изначально может быть сериализовано
|
||||
функцией <function>json_encode</function>.
|
||||
</para>
|
||||
</refsect1>
|
||||
@ -30,7 +30,7 @@
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Возвращает данные, которые могут быть сериализованы <function>json_encode</function>,
|
||||
которые являются значением любого типа, отличным от типа <type>resource</type>.
|
||||
которые являются значением любого типа, кроме <type>resource</type>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
|
Reference in New Issue
Block a user