PHP JSON

Apakah itu JSON?

· JSON merujuk kepada Notasi Objek JavaScript (Notasi Objek JavaScript)

· JSON ialah format pertukaran data teks ringan

· JSON bebas bahasa *

· JSON menerangkan sendiri dan lebih mudah difahami

* JSON menggunakan sintaks JavaScript untuk menerangkan objek data, tetapi JSON masih bebas bahasa dan platform. Penghurai JSON dan perpustakaan JSON menyokong banyak bahasa pengaturcaraan yang berbeza.


Konfigurasi persekitaran

telah terbina dalam dalam php5.2.0 dan ke atas.

Fungsi JSON

 
     函数      描述
   json_encode对变量进行 JSON 编码
   json_decode对 JSON 格式的字符串进行解码,转换为 PHP 变量
   json_last_error返回最后发生的错误
<🎜>Fungsi< 🎜><🎜>
<🎜>< 🎜>Penerangan<🎜><🎜>
json_encode json_decodeUntuk rentetan dalam format JSON Decode dan tukar kepada pembolehubah PHP
json_last_error


json_encode

json_encode() digunakan untuk mengekod pembolehubah JSON Fungsi ini mengembalikan data JSON jika berjaya dilaksanakan, jika tidak, ia akan mengembalikan FALSE.

Sintaks

json_encode ($value,[,options = 0 ] )

Parameter

· nilai : Nilai untuk mengekod. Fungsi ini hanya sah untuk data yang dikodkan UTF-8.

· pilihan: Topeng binari yang terdiri daripada pemalar berikut: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT,

JSON_LASHEX, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT,

JSON_LASCOPE,

JSON_LASCOPE,

JSON_LASCOPE 🎜>· Memandangkan json hanya menerima UTF -8 aksara yang dikodkan, jadi parameter json_encode() mestilah dikodkan UTF-8, jika tidak, anda akan mendapat aksara kosong atau null. Perhatian khusus harus diberikan kepada perkara ini apabila bahasa Cina menggunakan pengekodan GB2312, atau bahasa asing menggunakan pengekodan ISO-8859-1.


Contoh

Contoh berikut menunjukkan Cara menukar tatasusunan PHP kepada data format JSON:

<?php
 $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
 echo json_encode($arr);
 ?>

Hasil jalankan program:

{"a":1,"b": 2,"c":3,"d":4,"e":5}


Contoh berikut menunjukkan cara menukar objek PHP kepada data format JSON

<?php
 class Emp {
     public $name = "";
     public $hobbies  = "";
     public $birthdate = "";
 }
 $e = new Emp();
 $e->name = "sachin";
 $e->hobbies  = "sports";
 $e->birthdate = date('Y-m-d h:i:s a', "2016/9/19 12:20:03 p");
 $e->birthdate = date('Y-m-d h:i:s a', strtotime("2016/9/19 12:20:03"));
 
 echo json_encode($e);
 ?>

Hasil menjalankan program:

{"name":"sachin","hobi":"sukan","tarikh lahir":"2016-09-19 12:20:03 pm"} $json [,$assoc = false [, $depth = 512 [, $options = 0 ]]]


json_decode

Fungsi json_decode() digunakan untuk menyahkod rentetan format JSON dan menukarnya kepada pembolehubah PHP.

Sintaks

json_decode ($json [,$assoc = false [, $depth = 512 [, $ pilihan = 0 ]]])

Parameter

· json_string: untuk dinyahkod Rentetan JSON, mestilah data berkod UTF-8

· assoc: Apabila parameter ini BENAR, tatasusunan akan dikembalikan dan apabila FALSE, objek akan dikembalikan.

· kedalaman: Parameter jenis integer, yang menentukan kedalaman rekursi

· pilihan: Topeng binari, pada masa ini hanya JSON_BIGINT_AS_STRING yang disokong.


json_decode() Ralat biasa

Tiga cara penulisan json berikut semuanya salah. Bolehkah anda melihat di mana ralatnya?

$bad_json = "{ 'bar': 'baz' }";
$bad_json = '{ bar: "baz" }';

$bad_json = '{ "bar": "baz", }';

Melaksanakan json_decode() pada tiga rentetan ini akan mengembalikan null dan melaporkan ralat.

Ralat pertama ialah pembatas json hanya membenarkan penggunaan petikan berganda, bukan petikan tunggal.

Kesilapan kedua ialah "nama" (bahagian di sebelah kiri titik bertindih) pasangan nilai nama json mesti menggunakan petikan berganda dalam apa jua keadaan.

Ralat ketiga ialah anda tidak boleh menambah koma mengekor selepas nilai terakhir.

Selain itu, json hanya boleh digunakan untuk mewakili objek dan tatasusunan Jika json_decode() digunakan pada rentetan atau nilai, null akan dikembalikan.


Contoh

Contoh berikut menunjukkan Cara menyahkod data JSON:

<?php
 $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
 
 var_dump(json_decode($json));
 var_dump(json_decode($json, true));
 ?>

Hasil pelaksanaan program:

objek(stdClass)#1 (5) { ["a"] = > int(1) ["b"]=> ; int(5)}array(5) { ["a"]=> " ]=> int(4) ["e"]=> int(5)}



Meneruskan pembelajaran
||
<?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ?>
  • Cadangan kursus
  • Muat turun perisian kursus