亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php如何解析這種JSON?

php如何解析這種JSON?

郎朗坤 2019-02-07 19:07:49
php如何解析這種JSON
查看完整描述

2 回答

?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

目前,JSON已經成為最流行的數據交換格式之一,各大網站的API幾乎都支持它。
從5.2版本開始,PHP原生提供json_encode()和json_decode()函數,前者用于編碼,后者用于解碼。
一、json_encode()
該函數主要用來將數組和對象,轉換為json格式。先看一個數組轉換的例子:
  $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
  echo json_encode($arr);

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

由于json只接受utf-8編碼的字符,所以json_encode()的參數必須是utf-8編碼,否則會得到空字符或者null。當中文使用GB2312編碼,或者外文使用ISO-8859-1編碼的時候,這一點要特別注意。

二、索引數組和關聯數組
PHP支持兩種數組,一種是只保存"值"(value)的索引數組(indexed array),另一種是保存"名值對"(name/value)的關聯數組(associative array)。
由于javascript不支持關聯數組,所以json_encode()只將索引數組(indexed array)轉為數組格式,而將關聯數組(associative array)轉為對象格式。
比如,現在有一個索引數組
  $arr = Array('one', 'two', 'three');
  echo json_encode($arr);

結果為:

["one","two","three"]

三、類(class)的轉換
下面是一個PHP的類:   class Foo {     const ERROR_CODE = '404';     public $public_ex = 'this is public';     private $private_ex = 'this is private!';     protected $protected_ex = 'this should be protected';     public function getErrorCode() {       return self::ERROR_CODE;     }   }
現在,對這個類的實例進行json轉換:

  $foo = new Foo;
  $foo_json = json_encode($foo);
  echo $foo_json;

輸出結果是
{"public_ex":"this is public"}

可以看到,除了公開變量(public),其他東西(常量、私有變量、方法等等)都遺失了。



查看完整回答
反對 回復 2019-02-28
?
慕后森

TA貢獻1802條經驗 獲得超5個贊

12345678910111213$jsonStr '{"msg":{"auth":"Yes_auth","ddid":"1","payje":0.3,"payzt":"SUCCESS"}}'; $arr = json_decode($jsonStr, true); $payzt $arr['msg']['payzt']; // 或者 $jsonStr '{"msg":{"auth":"Yes_auth","ddid":"1","payje":0.3,"payzt":"SUCCESS"}}'; $arr = json_decode($jsonStr); $payzt $arr->msg->payzt;

 關鍵是對json_decode函數的使用。


查看完整回答
反對 回復 2019-02-28
  • 2 回答
  • 0 關注
  • 425 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號