json_encode Değerin JSON karşılığını verir. &reftitle.description; stringfalsejson_encode mixeddeğer intseçenekler0 intderinlik512 Belirtilen değer'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. Dizgeleştirilen değer bir nesne ise öntanımlı olarak yalnızca genelde görünür (public) özellikler içerebilir. Ancak, JSON'a dizgeleştirmeyi denetim altıda tutmak için JsonSerializable arayüzünü gerçeklemek yoluna da gidilebilir. Kodlama, sağlanan seçeneklerden etkilenir ve ek olarak kayan noktalı değerlerin kodlanması serialize_precision değerine bağlıdır. &reftitle.parameters; değer Kodlanacak değer. &resource; türü dışında herhangi bir türde olabilir. Tüm dizgeler UTF-8 kodlu olmalıdır. seçenekler JSON_FORCE_OBJECT, JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_FORCE_OBJECT. JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_NUMERIC_CHECK, JSON_PARTIAL_OUTPUT_ON_ERROR, JSON_PRESERVE_ZERO_FRACTION, JSON_PRETTY_PRINT, JSON_UNESCAPED_LINE_TERMINATORS, JSON_UNESCAPED_SLASHES, JSON_UNESCAPED_UNICODE, JSON_THROW_ON_ERROR sabitlerinin bit maskesi. Bu sabitlerin davranışı JSON sabitleri sayfasında açıklanmıştır. &reftitle.returnvalues; Başarı durumunda JSON kodlu bir dizge,&return.falseforfailure;. &reftitle.changelog; &Version; &Description; 7.3.0 JSON_THROW_ON_ERROR seçeneği eklendi. 7.2.0 JSON_INVALID_UTF8_IGNORE ve JSON_INVALID_UTF8_SUBSTITUTE seçeneği eklendi. 7.1.0 JSON_UNESCAPED_LINE_TERMINATORS seçeneği eklendi. 7.1.0 float değerler deşifre edilirken precision &php.ini; seçeneği yerine serialize_precision kullanılır. &reftitle.examples; - <function>json_encode</function> örneği 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ?> ]]> &example.outputs; - Bazı seçeneklerin kullanımını gösteren <function>json_encode</function> örneği ',"'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"; ?> ]]> &example.outputs; ","'bar'","\"baz\"","&blong&","\u00e9"] Tags: ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&","\u00e9"] Apos: ["","\u0027bar\u0027","\"baz\"","&blong&","\u00e9"] Quot: ["","'bar'","\u0022baz\u0022","&blong&","\u00e9"] Amp: ["","'bar'","\"baz\"","\u0026blong\u0026","\u00e9"] Unicode: ["","'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"} ]]> - JSON_NUMERIC_CHECK seçeneği örneği ]]> &example.outputs.similar; 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"]" ]]> - Sıralı ve sırasız dizi örneği "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) ); ?> ]]> &example.outputs; 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"}" ]]> - <constant>JSON_PRESERVE_ZERO_FRACTION</constant> seçeneği ]]> &example.outputs; &reftitle.notes; Kodlamada bir başarısızlık durumunda, hatanın tam niteliğini belirlemek için json_last_error kullanılabilir. 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. İlgili JSON kodlayıcısı gibi, json_encode, girdi değeri 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. Özetlemek gerekirse, JSON kod çözücünün json_encode'dan üretilen çıktıyı işleyebildiği her zaman sınanmalıdır. &reftitle.seealso; JsonSerializable json_decode json_last_error json_last_error_msg serialize