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:
Alexey Pyltsyn
2017-12-25 15:49:45 +00:00
parent ab9a74fed1
commit 624e373352
8 changed files with 49 additions and 46 deletions

View File

@ -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>

View File

@ -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.

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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);

View File

@ -15,7 +15,7 @@
&reftitle.intro;
<para>
Объекты, реализующие интерфейс <interfacename>JsonSerializable</interfacename>,
могут адаптировать свое JSON-представление когда кодируются с помощью
могут модифицировать свое JSON-представление при кодировании с помощью
<function>json_encode</function>.
</para>
</section>

View File

@ -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>