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

364 lines
9.3 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-decode" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>json_decode</refname>
<refpurpose>Bir JSON dizgesini çözümler</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>json_decode</methodname>
<methodparam><type>string</type><parameter>json</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>bool</type><type>null</type></type><parameter>ilişkisel</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>derinlik</parameter><initializer>512</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>seçenekler</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
<para>
Kodlanmış bir JSON dizgesini çözümler ve PHP değerine çevirir.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>json</parameter></term>
<listitem>
<para>
Deşifre edilmiş <parameter>json</parameter> dizgesi.
</para>
<para>
Bu işlev UTF-8 kodlu dizgelerle çalışır.
</para>
&json.implementation.superset;
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>ilişkisel</parameter></term>
<listitem>
<para>
&true; olduğu zaman JSON nesneleri bir ilişkisel dizilere dönüştürülür.
&false; belirtilirse JSON nesneleri nesne olarak döndürülür.
&null; olduğu zaman JSON nesneleri <parameter>seçenekler</parameter>
bağımsız değişkeninde <constant>JSON_OBJECT_AS_ARRAY</constant> sabiti
atanmışsa ilişkisel dizi atanmamışsa nesne olarak döner.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>derinlik</parameter></term>
<listitem>
<para>
Kodlu yapının azami iç içe derinliği.
Değer <literal>0</literal>'dan büyük,
<literal>2147483647</literal>'den küçük veya buna eşit olmalıdır.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>seçenekler</parameter></term>
<listitem>
<para>
<constant>JSON_BIGINT_AS_STRING</constant>,
<constant>JSON_INVALID_UTF8_IGNORE</constant>,
<constant>JSON_INVALID_UTF8_SUBSTITUTE</constant>,
<constant>JSON_OBJECT_AS_ARRAY</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>
<parameter>json</parameter> ile şifrelenmiş değerler PHP için uygun
veri türlerinde döner. <literal>true</literal>, <literal>false</literal>
ve <literal>null</literal> değerle sırasıyla &true;, &false; ve &null;
olarak döner. <parameter>json</parameter> çözülemediğinde ya da şifreli
verinin iç içelik derinliği belirtilenden fazla olduğunda da &null; döner.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
<parameter>derinlik</parameter> izin verilen aralığın dışındaysa,
PHP 8.0.0 ve sonrasında bir <classname>ValueError</classname> yavrulanır.
Evvelce, <constant>E_WARNING</constant> seviyesinde bir hata çıktılanırdı.
</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>
<parameter>associative</parameter> is nullable now.
</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>
<literal>_empty_</literal> değerli bir anahtar kullanmak yerine boş
nesne özelliğine boş bir JSON anahtarı ("") kodlanabilir.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>- <function>json_decode</function> örnekleri</title>
<programlisting role="php">
<![CDATA[
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
]]>
</screen>
</example>
<example>
<title>- Geçersiz nesne özelliklerine erişim</title>
<simpara>
PHP'nin adlandırma kuralı (örneğin, kısa çizgi) kapsamında izin
verilmeyen karakterleri içeren bir nesne içindeki öğelere erişim,
öğe adının kaşlı ayraçlar ve tek tırnak imleri arasına alınmasıyla
gerçekleştirilebilir.
</simpara>
<programlisting role="php">
<![CDATA[
<?php
$json = '{"foo-bar": 12345}';
$obj = json_decode($json);
print $obj->{'foo-bar'}; // 12345
?>
]]>
</programlisting>
</example>
<example>
<title>- <function>json_decode</function> kullanırken yapılan genel bir hata.</title>
<programlisting role="php">
<![CDATA[
<?php
// Aşağıdaki dizgeler JavaScript de geçerli olmasına karşın JSON da geçerli değildir.
// isim ve değerler çift tırnak içine alınmalıdır.
// tek tırnak geçerli değildir.
$bad_json = "{ 'bar': 'baz' }";
json_decode($bad_json); // boş
// isim çift tırnak içine alınmalıdır.
$bad_json = '{ bar: "baz" }';
json_decode($bad_json); // boş
// sonda kalan virgüle izin verilmez
$bad_json = '{ bar: "baz", }';
json_decode($bad_json); // boş
?>
]]>
</programlisting>
</example>
<example>
<title>- <parameter>depth</parameter> hataları</title>
<programlisting role="php">
<![CDATA[
<?php
// Veriyi azami derinlik olarak 4 iç içelik ile kodla
// (array -> array -> array -> string).
$json = json_encode(
array(
1 => array(
'English' => array(
'One',
'January'
),
'French' => array(
'Une',
'Janvier'
)
)
)
);
// Farklı derinlikteki hataları göster
var_dump(json_decode($json, true, 4));
echo 'Son hata: ', json_last_error_msg(), PHP_EOL, PHP_EOL;
var_dump(json_decode($json, true, 3));
echo 'Son hata: ', json_last_error_msg(), PHP_EOL, PHP_EOL;
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
array(1) {
[1]=>
array(2) {
["English"]=>
array(2) {
[0]=>
string(3) "One"
[1]=>
string(7) "January"
}
["French"]=>
array(2) {
[0]=>
string(3) "Une"
[1]=>
string(7) "Janvier"
}
}
}
Son hata: No error
NULL
Son hata: Maximum stack depth exceeded
]]>
</screen>
</example>
<example>
<title>- Büyük tamsayılarla <function>json_decode</function></title>
<programlisting role="php">
<![CDATA[
<?php
$json = '{"number": 12345678901234567890}';
var_dump(json_decode($json));
var_dump(json_decode($json, false, 512, JSON_BIGINT_AS_STRING));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
object(stdClass)#1 (1) {
["number"]=>
float(1.2345678901235E+19)
}
object(stdClass)#1 (1) {
["number"]=>
string(20) "12345678901234567890"
}
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
JSON sınıfı JavaScript değildir, ancak JavaScript'in alt kümesidir.
</para>
</note>
<note>
<para>
Bir hatayı çözmek ve hatanın tam niteliği belirlemek
için <function>json_last_error</function> kullanılabilir.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>json_encode</function></member>
<member><function>json_last_error</function></member>
<member><function>json_last_error_msg</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
-->