1
0
mirror of https://github.com/php/doc-tr.git synced 2026-03-24 23:32:06 +01:00
Files
archived-doc-tr/reference/json/functions/json-encode.xml
2024-09-03 15:44:50 +03:00

416 lines
12 KiB
XML
Raw Permalink 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: 9f2e30a00afda6d6b6a3e19b13956150c2eaf2c1 Maintainer: nilgun Status: ready -->
<!-- CREDITS: ecamalan -->
<refentry xml:id="function.json-encode" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>json_encode</refname>
<refpurpose>Değerin JSON karşılığını verir.</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>string</type><type>false</type></type><methodname>json_encode</methodname>
<methodparam><type>mixed</type><parameter>değer</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>seçenekler</parameter><initializer>0</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>derinlik</parameter><initializer>512</initializer></methodparam>
</methodsynopsis>
<para>
Belirtilen <parameter>değer</parameter>'in JSON gösterimini
içeren bir dizge döndürür. Bağımsız değişken bir dizi veya nesne ise önce ardışık
olarak dizgeleştirilir.
</para>
<para>
Dizgeleştirilen değer bir nesne ise öntanımlı olarak yalnızca genelde
görünür (public) özellikler içerebilir. Ancak, <acronym>JSON</acronym>'a
dizgeleştirmeyi denetim altıda tutmak için
<interfacename>JsonSerializable</interfacename> arayüzünü gerçeklemek
yoluna da gidilebilir.
</para>
<para>
Kodlama, sağlanan <parameter>seçenekler</parameter>den etkilenir ve
ek olarak kayan noktalı değerlerin kodlanması <link
linkend="ini.serialize-precision">serialize_precision</link> değerine
bağlıdır.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>değer</parameter></term>
<listitem>
<para>
Kodlanacak değer. &resource; türü dışında herhangi bir türde olabilir.
</para>
<para>
Tüm dizgeler UTF-8 kodlu olmalıdır.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>seçenekler</parameter></term>
<listitem>
<para>
<constant>JSON_FORCE_OBJECT</constant>,
<constant>JSON_HEX_QUOT</constant>,
<constant>JSON_HEX_TAG</constant>,
<constant>JSON_HEX_AMP</constant>,
<constant>JSON_HEX_APOS</constant>,
<constant>JSON_FORCE_OBJECT</constant>.
<constant>JSON_INVALID_UTF8_IGNORE</constant>,
<constant>JSON_INVALID_UTF8_SUBSTITUTE</constant>,
<constant>JSON_NUMERIC_CHECK</constant>,
<constant>JSON_PARTIAL_OUTPUT_ON_ERROR</constant>,
<constant>JSON_PRESERVE_ZERO_FRACTION</constant>,
<constant>JSON_PRETTY_PRINT</constant>,
<constant>JSON_UNESCAPED_LINE_TERMINATORS</constant>,
<constant>JSON_UNESCAPED_SLASHES</constant>,
<constant>JSON_UNESCAPED_UNICODE</constant>,
<constant>JSON_THROW_ON_ERROR</constant> sabitlerinin bit maskesi.
Bu sabitlerin davranışı <link linkend="json.constants">JSON
sabitleri</link> sayfasında açıklanmıştır.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Başarı durumunda JSON kodlu bir dizge,&return.falseforfailure;.
</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>7.3.0</entry>
<entry>
<constant>JSON_THROW_ON_ERROR</constant> seçeneği eklendi.
</entry>
</row>
<row>
<entry>7.2.0</entry>
<entry>
<constant>JSON_INVALID_UTF8_IGNORE</constant> ve
<constant>JSON_INVALID_UTF8_SUBSTITUTE</constant> seçeneği eklendi.
</entry>
</row>
<row>
<entry>7.1.0</entry>
<entry>
<constant>JSON_UNESCAPED_LINE_TERMINATORS</constant> seçeneği eklendi.
</entry>
</row>
<row>
<entry>7.1.0</entry>
<entry>
<type>float</type> değerler deşifre edilirken
<link linkend="ini.precision">precision</link> &php.ini; seçeneği yerine
<link linkend="ini.serialize-precision">serialize_precision</link>
kullanılır.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>- <function>json_encode</function> örneği</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>- Bazı seçeneklerin kullanımını gösteren
<function>json_encode</function> örneği</title>
<programlisting role="php">
<![CDATA[
<?php
$a = array('<foo>',"'bar'",'"baz"','&blong&', "\xc3\xa9");
echo "Normal: ", json_encode($a), "\n";
echo "Tags: ", json_encode($a, JSON_HEX_TAG), "\n";
echo "Apos: ", json_encode($a, JSON_HEX_APOS), "\n";
echo "Quot: ", json_encode($a, JSON_HEX_QUOT), "\n";
echo "Amp: ", json_encode($a, JSON_HEX_AMP), "\n";
echo "Unicode: ", json_encode($a, JSON_UNESCAPED_UNICODE), "\n";
echo "All: ", json_encode($a, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT |
JSON_HEX_AMP | JSON_UNESCAPED_UNICODE), "\n\n";
$b = array();
echo "Boş dizi, dizi olarak çıktılanır: ", json_encode($b), "\n";
echo "Boş dizi, nesne olarak çıktılanır: ", json_encode($b, JSON_FORCE_OBJECT), "\n\n";
$c = array(array(1,2,3));
echo "İlişkisel olmayan dizi, dizi olarak çıktılanır: ", json_encode($c), "\n";
echo "İlişkisel olmayan dizi, nesne olarak çıktılanır: ", json_encode($c, JSON_FORCE_OBJECT), "\n\n";
$d = array('foo' => 'bar', 'baz' => 'long');
echo "İlişkisel dizi daima nesne olarak çıktılanır: ", json_encode($d), "\n";
echo "İlişkisel dizi daima nesne olarak çıktılanır: ", json_encode($d, JSON_FORCE_OBJECT), "\n\n";
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Normal: ["<foo>","'bar'","\"baz\"","&blong&","\u00e9"]
Tags: ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&","\u00e9"]
Apos: ["<foo>","\u0027bar\u0027","\"baz\"","&blong&","\u00e9"]
Quot: ["<foo>","'bar'","\u0022baz\u0022","&blong&","\u00e9"]
Amp: ["<foo>","'bar'","\"baz\"","\u0026blong\u0026","\u00e9"]
Unicode: ["<foo>","'bar'","\"baz\"","&blong&","é"]
All: ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026","é"]
Boş dizi, dizi olarak çıktılanır: []
Boş dizi, nesne olarak çıktılanır: {}
İlişkisel olmayan dizi, dizi olarak çıktılanır: [[1,2,3]]
İlişkisel olmayan dizi, nesne olarak çıktılanır: {"0":{"0":1,"1":2,"2":3}}
İlişkisel dizi daima nesne olarak çıktılanır: {"foo":"bar","baz":"long"}
İlişkisel dizi daima nesne olarak çıktılanır: {"foo":"bar","baz":"long"}
]]>
</screen>
</example>
<example>
<title>- JSON_NUMERIC_CHECK seçeneği örneği</title>
<programlisting role="php">
<![CDATA[
<?php
echo "Sayıları gösteren dizgeler otomatik olarak sayılara dönüştürülür".PHP_EOL;
$numbers = array('+123123', '-123123', '1.2e3', '0.00001');
var_dump(
$numbers,
json_encode($numbers, JSON_NUMERIC_CHECK)
);
echo "Yanlış biçimlendirilmiş sayılar içeren dizgeler".PHP_EOL;
$strings = array('+a33123456789', 'a123');
var_dump(
$strings,
json_encode($strings, JSON_NUMERIC_CHECK)
);
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
Sayıları gösteren dizgeler otomatik olarak sayılara dönüştürülür
array(4) {
[0]=>
string(7) "+123123"
[1]=>
string(7) "-123123"
[2]=>
string(5) "1.2e3"
[3]=>
string(7) "0.00001"
}
string(28) "[123123,-123123,1200,1.0e-5]"
Yanlış biçimlendirilmiş sayılar içeren dizgeler
array(2) {
[0]=>
string(13) "+a33123456789"
[1]=>
string(4) "a123"
}
string(24) "["+a33123456789","a123"]"
]]>
</screen>
</example>
<example>
<title>- Sıralı ve sırasız dizi örneği</title>
<programlisting role="php">
<![CDATA[
<?php
echo "Sıralı dizi".PHP_EOL;
$sequential = array("foo", "bar", "baz", "blong");
var_dump(
$sequential,
json_encode($sequential)
);
echo PHP_EOL."Sırasız dizi".PHP_EOL;
$nonsequential = array(1=>"foo", 2=>"bar", 3=>"baz", 4=>"blong");
var_dump(
$nonsequential,
json_encode($nonsequential)
);
echo PHP_EOL."1 indisi silinmiş sıralı dizi".PHP_EOL;
unset($sequential[1]);
var_dump(
$sequential,
json_encode($sequential)
);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Sıralı dizi
array(4) {
[0]=>
string(3) "foo"
[1]=>
string(3) "bar"
[2]=>
string(3) "baz"
[3]=>
string(5) "blong"
}
string(27) "["foo","bar","baz","blong"]"
Sırasız dizi
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"}"
1 indisi silinmiş sıralı dizi
array(3) {
[0]=>
string(3) "foo"
[2]=>
string(3) "baz"
[3]=>
string(5) "blong"
}
string(33) "{"0":"foo","2":"baz","3":"blong"}"
]]>
</screen>
</example>
<example>
<title>- <constant>JSON_PRESERVE_ZERO_FRACTION</constant> seçeneği</title>
<programlisting role="php">
<![CDATA[
<?php
var_dump(json_encode(12.0, JSON_PRESERVE_ZERO_FRACTION));
var_dump(json_encode(12.0));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
string(4) "12.0"
string(2) "12"
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Kodlamada bir başarısızlık durumunda, hatanın tam niteliğini belirlemek için
<function>json_last_error</function> kullanılabilir.
</para>
</note>
<note>
<para>
Bir diziyi kodlarken, anahtarlar 0'dan başlayan sürekli bir sayısal dizi
değilse, tüm anahtarlar dizge olarak kodlanır ve her anahtar-değer çifti
için bu açıkça belirtilir.
</para>
</note>
<note>
<para>
İlgili JSON kodlayıcısı gibi, <function>json_encode</function>, girdi
<parameter>değer</parameter>i olarak &string;, &integer;, &float; veya
&boolean; verildiğinde basit bir değer olan (yani bir nesne veya bir dizi
olmayan) JSON üretecektir. Çoğu kod çözücü bu değerleri geçerli JSON olarak
kabul ederken, bazıları kabul etmeyebilir çünkü belirtim bu noktada
belirsizdir.
</para>
<para>
Özetlemek gerekirse, JSON kod çözücünün
<function>json_encode</function>'dan üretilen çıktıyı işleyebildiği her
zaman sınanmalıdır.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><interfacename>JsonSerializable</interfacename></member>
<member><function>json_decode</function></member>
<member><function>json_last_error</function></member>
<member><function>json_last_error_msg</function></member>
<member><function>serialize</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
-->