用 Json 來實現 PHP 與 JavaScript 間資料交換

liuxuhui發表於2021-09-09

用 Json 來實現 PHP 與 JavaScript 間資料交換

2010-03-29

JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。

簡而論之,不管是xml還是json都是為了方便在客戶端與伺服器端互動資料的中轉站,特別是用於物件型資料,比如最常見的陣列。

下面將分別將陣列從php傳送給javascript,以及將陣列從javascript傳送給php示例說明,例子比較簡單,明白概念即可。不管從php傳送給javascript,還是javascript傳送給php,json在傳送之前都會將物件扁平化即一維化為字串。
PHP 向 JavaScript 傳值

PHP 檔案 json.php0102    $arr = array(
03        'name' => '希亞',
04        'nick' => 'Gonn',
05        'contact' => array(
06            'email' => 'gonnsai@163.com',
07            'website' => '',
08        )
09    );
10    $json_string = json_encode($arr);
11    echo "getProfile($json_string)";
12?>


光執行這個檔案,其結果如下:1getProfile({"name":"u5e0cu4e9a","nick":"Gonn",
2    "contact":{"email":"gonnsai@163.com","website":""}})


json.php 是透過 json_encode 函式將陣列扁平化,然後傳送,相反有個 json_decode 函式。

那麼在 JavaScript 如何呼叫呢?很簡單,定義一個變數獲取 PHP 傳來的 Json,該 Json 具備物件的特性,我們可以用 array.name 這種方式來獲取該 Json 的屬性。01
10


11

12

13

14

15
16



執行結果如下:1希亞
2Gonn
3gonnsai@163.com
4

JavaScript 向 PHP 傳值

json_encode.html01
02
03
04
05json:From javascript To php
06

07
21
22  
23
24  
25    

26        
27        


28        
29        


30        


31        


32        


33            
34            
35        


36    

37  
38
39


這裡javascript扁平化需要一個外掛:(str)將物件扁平化然後傳送給php。

注:另有一個 last=obj.toJSONString(); //針對json.js
2var last=JSON.stringify(obj); //針對json2.js

json_encode.php0102    header('Content-Type: text/html; charset=utf-8');
03    $json_string = $_POST["txt_json"];
04    //echo $json_string;
05    if(ini_get("magic_quotes_gpc")=="1")
06    {
07        $json_string=stripslashes($json_string);
08    }
09    $user = json_decode($json_string);
10  
11    echo var_dump($user);
12  
13    echo '



';
14    echo $user->name.'
';
15    echo $user->email.'
';
16    echo $user->password.'
';
17?>


這裡就需要用到json_decode()這個函式,然後呼叫其中資料用 $obj->屬性即可。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/756/viewspace-2804817/,如需轉載,請註明出處,否則將追究法律責任。

相關文章