Files
php-doc-ru/reference/json/functions/json-encode.xml
Alexander Moskaliov 160fd3bcda Updated translation
git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@321978 c90b9560-bf6c-de11-be94-00142212c4b1
2012-01-09 23:28:43 +00:00

301 lines
9.6 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 6e45d905741062c57783bf51db5dc3adfa7eb39d Maintainer: irker Status: ready -->
<!-- Reviewed: yes -->
<!-- $Revision$ -->
<refentry xml:id="function.json-encode" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>json_encode</refname>
<refpurpose>Возвращает JSON-представление данных</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>json_encode</methodname>
<methodparam><type>mixed</type><parameter>value</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>options</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
<para>
Возвращает строку, содержащую JSON-представление
<parameter>value</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>value</parameter></term>
<listitem>
<para>
<parameter>value</parameter> - значение, которое будет закодировано. Может быть любого типа
за исключением <type>resource</type>.
</para>
<para>
Функция работает только с кодированными в UTF-8 данными.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>options</parameter></term>
<listitem>
<para>
Битовая маска составляемая из значений <constant>JSON_HEX_QUOT</constant>,
<constant>JSON_HEX_TAG</constant>,
<constant>JSON_HEX_AMP</constant>,
<constant>JSON_HEX_APOS</constant>,
<constant>JSON_NUMERIC_CHECK</constant>,
<constant>JSON_BIGINT_AS_STRING</constant>,
<constant>JSON_PRETTY_PRINT</constant>,
<constant>JSON_UNESCAPED_SLASHES</constant>,
<constant>JSON_FORCE_OBJECT</constant>,
<constant>JSON_UNESCAPED_UNICODE</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает JSON закодированную строку (<type>string</type>) в случае успеха.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>5.4.0</entry>
<entry>
В <parameter>options</parameter> были добавлены константы <constant>JSON_BIGINT_AS_STRING</constant>, <constant>JSON_PRETTY_PRINT</constant>, <constant>JSON_UNESCAPED_SLASHES</constant> и <constant>JSON_UNESCAPED_UNICODE</constant>.
</entry>
</row>
<row>
<entry>5.3.3</entry>
<entry>
Константа <constant>JSON_NUMERIC_CHECK</constant> была добавлена в <parameter>option</parameter>.
</entry>
</row>
<row>
<entry>5.3.0</entry>
<entry>
Был добавлен параметр <parameter>options</parameter>.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования <function>json_encode</function></title>
<programlisting role="php">
<![CDATA[
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
{"a":1,"b":2,"c":3,"d":4,"e":5}
]]>
</screen>
</example>
<example>
<title>Пример использования <function>json_encode</function>, показывающий действия всех опций</title>
<programlisting role="php">
<![CDATA[
<?php
$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_APOS), "\n";
echo "Ковычки: ", json_encode($a, JSON_HEX_QUOT), "\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";
$c = array(array(1,2,3));
echo "Отображение неассоциативного массива как массива: ", json_encode($c), "\n";
echo "Отображение неассоциативного массива как объекта: ", json_encode($c, JSON_FORCE_OBJECT), "\n\n";
$d = array('foo' => 'bar', 'baz' => 'long');
echo "Ассоциативный массив всегда отображается как объект: ", json_encode($d), "\n";
echo "Ассоциативный массив всегда отображается как объект: ", json_encode($d, JSON_FORCE_OBJECT), "\n\n";
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Обычно: ["<foo>","'bar'","\"baz\"","&blong&","\u00e9"]
Тэги: ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&","\u00e9"]
Апострофы: ["<foo>","\u0027bar\u0027","\"baz\"","&blong&","\u00e9"]
Ковычки: ["<foo>","'bar'","\u0022baz\u0022","&blong&","\u00e9"]
Амперсанты: ["<foo>","'bar'","\"baz\"","\u0026blong\u0026","\u00e9"]
Unicode: ["<foo>","'bar'","\"baz\"","&blong&","é"]
Все: ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026","é"]
Отображение пустого массива как массива: []
Отображение не ассоциативного массива как объекта: {}
Отображение неассоциативного массива как массива: [[1,2,3]]
Отображение неассоциативного массива как объекта: {"0":{"0":1,"1":2,"2":3}}
Ассоциативный массив всегда отображается как объект: {"foo":"bar","baz":"long"}
Ассоциативный массив всегда отображается как объект: {"foo":"bar","baz":"long"}
]]>
</screen>
</example>
<example>
<title>Пример с последовательными индексами начинающимися с нуля и непоследовательными индексами массивов</title>
<programlisting role="php">
<![CDATA[
<?php
echo "Последовательный массив".PHP_EOL;
$sequential = array("foo", "bar", "baz", "blong");
var_dump(
$sequential,
json_encode($sequential)
);
echo PHP_EOL."Непоследовательный массив".PHP_EOL;
$nonsequential = array(1=>"foo", 2=>"bar", 3=>"baz", 4=>"blong");
var_dump(
$nonsequential,
json_encode($nonsequential)
);
echo PHP_EOL."Последовательный массив с одним удаленным индексом".PHP_EOL;
unset($sequential[1]);
var_dump(
$sequential,
json_encode($sequential)
);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Последовательный массив
array(4) {
[0]=>
string(3) "foo"
[1]=>
string(3) "bar"
[2]=>
string(3) "baz"
[3]=>
string(5) "blong"
}
string(27) "["foo","bar","baz","blong"]"
Непоследовательный массив
array(4) {
[1]=>
string(3) "foo"
[2]=>
string(3) "bar"
[3]=>
string(3) "baz"
[4]=>
string(5) "blong"
}
string(43) "{"1":"foo","2":"bar","3":"baz","4":"blong"}"
Последовательный массив с одним удаленным индексом
array(3) {
[0]=>
string(3) "foo"
[2]=>
string(3) "baz"
[3]=>
string(5) "blong"
}
string(33) "{"0":"foo","2":"baz","3":"blong"}"
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
В случае ошибки кодирования, можно использовать <function>json_last_error</function>
для определения точной ошибки.
</para>
</note>
<note>
<para>
При кодировании массива в случае, если его индексы не являются
последовательными числами от нуля, то все индексы кодируются в строковые
ключи для каждой пары индекс-значение.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>json_decode</function></member>
<member><function>json_last_error</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->