1. 程式人生 > >JSON相關知識整理

JSON相關知識整理

數據 帶寬 逗號 使用 t對象 n) 防止 一個 ava

JSON 全稱:JavaScript Object Notation ,一種輕量級的數據交換格式

示例:{"name":"eric","age":24} {"first":{"name":"eric","age":24},"second":{"name":"Jake","age":30}}

四個基本規則:

1) 並列的數據之間用逗號(", ")分隔。
2) 映射用冒號(": ")表示。
3) 並列數據的集合(數組)用方括號("[]")表示。
4) 映射的集合(對象)用大括號("{}")表示。


優點:
1)數據格式較簡單,易於讀寫,格式都是壓縮的,占用帶寬小。
2)支持多種語言,包括ActionScript,C,C#,Java,JavaScript,PHP,Python,Ruby等服務端語言,便於服務器端的解析。

對比Serialize,是一種類似於JSON的數據格式,但是PHP的serialize是將變量序列化,返回一個具有變量類型和結構的字符串表達式,序列化後的數據格式保存數據原有類型,適合存儲帶有加密方式的數據串,防止數據被中途截取反序列化破解,而JSON適合數據量大,不要求保留原有數據類型的情況下使用

php常用的JSON函數

json_encode — 對變量進行 JSON 編碼
json_decode — 對 JSON 格式的字符串進行解碼,當第二個參數為true時將返回array,如果沒有或者默認值false則返回一個object

example#1
<?php
$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}

example#2
<?php
$json = ‘{"a":1,"b":2,"c":3,"d":4,"e":5}‘;

var_dump(json_decode($json));
var_dump(json_decode($json, true));

?>
輸出
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}

array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}


在JavaScript中,ECMAScript提供了內置函數JSON.stringify()和JSON.parse()來序列化和還原JavaScript對象

JSON相關知識整理