今天使用POST方式(GET方式也要注意)向PHP提交了一個JSON資料,比如:
{"a":1,"b":2}
在PHP中取出這個資料:$s=$ _POST['data'] ;//or $_GET['data'],然後這個串取出後是被轉義的:{"a":1,"b":2}
如果直接呼叫:
$obj = json_decode($s);
print_r($obj);
echo $obj->a;
:1,"b":2}';則沒有問題.所以在PHP中處理JSON時需要進行一下轉義處理:$s=strips教程lashes($_POST['data']) ;這樣再進行json解碼就可以了.json_decode — 對JSON 格式的字串進行編碼json_encode — 對變數進行JSON 編碼Report a bug 說明string jerfencode ( mixed $value Report a bug 參數value 待編碼的value,除了resource 類型之外,可以為任何資料類型,該函數只能接受UTF-8 編碼的資料(譯註:指字元/字串類型的資料)Report a bug 回傳值編碼成功則回傳一個以JSON 形式表示的string 。 Report a bug 範例Example #1 A json_encode() 的例子,代碼如下: $arr = array ('a'=>1,'b'=2,' =>3,'d'=>4,'e'=>5); echo json_encode($arr); ?> //以上例程會輸出: :1,"b":2,"c":3,"d":4,"e":5} json_encode — 對變數進行JSON 編碼json_decode — 對JSON 格式的字串進行編碼 Report a bug 說明mixed json_decode ( string $json [, bool $assoc ] )接受一個JSON 格式的字串並且把它轉換為PHP 變數Report a bug 參數string 格式的字串。 assoc 當此參數為 TRUE 時,將傳回 array 而非 object 。 Report a bug 回傳值Returns an object or if the optional assoc parameter is TRUE, an associative array is instead returned.
.
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json)) ;
var_dump(json_decode($json, true));
?>
/* ["a" ] => int(1)
["b"] => int(2)
["c"] => [" e"] => int(5)
}
array(5) {
["a
[ "c"] => int(3)
["d"] => int(4)
["e"] =