javascript - JS 用AJAX用POST 傳到PHP背景JSON字串為什麼會成為一個對象?

來源:互聯網
上載者:User


在PHP裡面可以直接用json_decode($str),轉回字串。
為什麼變成一個JSON對象了呢?難道PHP有預設解析?

直接輸出是這樣。

然後直接對其json_decode(,true)是這樣。

回複內容:


在PHP裡面可以直接用json_decode($str),轉回字串。
為什麼變成一個JSON對象了呢?難道PHP有預設解析?

直接輸出是這樣。

然後直接對其json_decode(,true)是這樣。

首先你要明白JSON是什麼,JavaScript Object Notation,意思是JavaScript對象標記法,它是一種基於文本,獨立於語言的輕量級資料交換格式。說白了它就是一段字串,由於並沒有附加額外的標記,JS也可以直接作為對象處理,所以常用於資料交換。
PHP之所以認得JSON字串,是因為PHP庫中有JSON_parser來解析
這就像是兩個部落之間雖然語言不通,但是約定一種東西做為統一貨幣來交換物品,這個‘物品’就是我們的資料

既然JS能直接處理JSON對象,那為什麼有時AJAX請求拿到的JSON字串還需要轉為JSON對象,這就要分清JSON字串JSON對象
JSON字串:指的是符合JSON格式要求的JS字串。如下:

var jsonStr = "{id:'1',name:'Fini',age:30}";

JSON對象:指符合JSON格式要求的JS對象。如下:

var jsonObj = { id: "1", name: "Fini", age: 30 };

在PHP中,相關的操作方法有json_encodejson_decode
json_encode理論上可以將除resourse外的任何資料類型轉為JSON格式字串(不過有些時候會失敗~囧~)

$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);var_dump(json_encode($arr));/**** result by php5.6 ****/string '{"a":1,"b":2,"c":3,"d":4,"e":5}' (length=31)

json_decode就是將一個JSON格式字串轉為PHP的arrayobject,這取決於第二個參數(true/false)

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';var_dump(json_decode($json));var_dump(json_decode($json, true));/**** result by php5.6 ****/object(stdClass)[1]  public 'a' => int 1  public 'b' => int 2  public 'c' => int 3  public 'd' => int 4  public 'e' => int 5array (size=5)  'a' => int 1  'b' => int 2  'c' => int 3  'd' => int 4  'e' => int 5

json_decode 預設轉換為對象,後後面加 ture  才是array

PHP手冊中關於 json_decode 的說明
mixed json_decode ( string $json [, bool $assoc ] )
接受一個 JSON 格式的字串並且把它轉換為 PHP 變數

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.