PHP JSON

Apakah itu json?

JSON (JavaScript Object Notation) ialah format pertukaran data ringan yang digunakan terutamanya untuk menghantar data.
JSON boleh menukar set data yang diwakili dalam objek JavaScript kepada rentetan, yang kemudiannya boleh dihantar dengan mudah antara fungsi atau daripada klien web kepada pelayan dalam program aplikasi tak segerak. Rentetan ini kelihatan agak pelik, tetapi JavaScript boleh mentafsirnya dengan mudah dan JSON boleh mewakili struktur yang lebih kompleks daripada "pasangan nama/nilai". Sebagai contoh, tatasusunan dan objek kompleks boleh diwakili dan bukannya senarai mudah kunci dan nilai.

Bab ini hanya untuk pemahaman, tidak perlu fokus padanya.

Konfigurasi persekitaran

Pelanjutan JSON telah terbina dalam dalam php5.2.0 dan ke atas.


Fungsi JSON


QQ截图20161009100513.png

json_encode

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

Sintaks

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

Parameter

·             nilai: Nilai yang akan dikodkan. 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_UNESCAPED_SLASHES

<🎜 🎜>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 pelaksanaan kod di atas ialah:

{"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('m/d/Y h:i:s a', "8/5/1974 12:20:03 p");
   $e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03"));
 
   echo json_encode($e);
?>

Hasil pelaksanaan bagi kod di atas ialah:

{"name":"sachin","hobi":"sukan","birthdate":"08/05/1974 12:20:03 pm"}


json_decode

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

Sintaks

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

<数>

Parameter

· JSON_STRING: Rentetan JSON yang hendak dinyahkod mestilah data pengekodan UTF-8

· assoc: Apabila parameter ini benar, ia akan kembali ke return. Array, mengembalikan objek jika FALSE.

· kedalaman: parameter jenis integer, yang menentukan kedalaman rekursi

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

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 kod di atas ialah:

objek(stdClass)#1 (5) {

["a"] =>

["b"] => int(2)

["c"] => )

["e"] => int(5)

}

array(5) {

[" a" ] => int(1)

["b"] => int(2)

["c"] => int(3)

["d"] => int(4)

["e"] => >

Peraturan format Json dalam PHP

- Data selari dipisahkan dengan koma (", ")

- Pemetaan dilakukan oleh titik bertindih ( ": ") mewakili - koleksi (tatasusunan) data selari diwakili oleh kurungan segi empat sama ("[]") - koleksi (objek) yang dipetakan diwakili oleh kurungan kerinting ("{}" )

Ayat berikut:

"Beijing mempunyai keluasan 16,800 kilometer persegi dan penduduk tetap 16 juta. Shanghai mempunyai keluasan 6,400 kilometer persegi dan penduduk kekal 18 juta."

Ia ditulis dalam format json seperti ini:

[

 {"City":"Beijing","Area":16800,"Population ":1600},

 {"City" ":"Shanghai","Kawasan":6400,"Populasi":1800}


]

Fungsi untuk mengendalikan json dalam PHP

Penyulitan json_encode

Nyahsulit json_decode

Penukaran tatasusunan satu dimensi kepada format data json

<?php
$arr_1 = array();
$arr_1['username'] = 'lisi';
$arr_1['age'] = 20;
echo json_encode($arr_1);//{"username":"lisi","age":20}
  ?>

Penukaran tatasusunan berbilang dimensi kepada format data json

<?php
$arr_2 = array();
// 三维数组
$arr_2['member']['lisi']['job'] = "worker";
$arr_2['member']['lisi']['age'] = 30;
$arr_2['member']['wangwu']['job'] = "student";
$arr_2['member']['wangwu']['age'] = 10;
 
echo json_encode($arr_2);
//{"member":{"lisi":{"job":"worker","age":30},"wangwu":{"job":"student","age":10}}}
  ?>

Penukaran objek ke dalam format data json

Apabila objek ditukar menjadi data json, hanya pembolehubah awam ditukar, pembolehubah peribadi tidak ditukar

<?php
class Person{
    public $name = "public name";
    protected $ptName = "protected name";
    private $pName = "private name";
 
    public function sayName(){
        return $this->name;
    }
}
$person1 = new Person();
echo json_encode($person1);//{"name":"public name"}
  ?>

Tukar format data json kepada jenis objek

<?php
$jsonStr = '{"key1":"value1","key2":"value2"}';
print_r(json_decode($jsonStr,false));//stdClass Object ( [key1] => value1 [key2] => value2
?>

Tukar format data json kepada jenis tatasusunan

<?php
$jsonStr = '{"key1":"value1","key2":"value2"}';
print_r(json_decode($jsonStr,true));//Array ( [key1] => value1 [key2] => value2 )
?>

json_decode($jsonStr ,true); objek

secara lalai.
Meneruskan pembelajaran
||
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, true)); ?>
  • Cadangan kursus
  • Muat turun perisian kursus