Json
1、json: javascript object notation(js对象符号),是一种数据格式,不是编程语言,语法形式和js一样
2、数据格式:
1、整体结构
String json1 = {"name" : "Jack","sex" : "男"}
String json2 = [{"name" : "Jack","sex" : "男"},{"name" : "Vincent","sex": "男"}]
2、JSON对象------左花括号({ )开头,右花括号(})结尾,一个键值对为一个属性
Json对象结构:{key1:value1,key2:value2...}
a)、key的数据类型:字符串
b)、value的数据类型:字符串、数值、null、json数组[]、json对象{}
3、json数组:
json数组结构:[value1,value2......]
1)、value的数据类型:字符串、数值、null、json数组[]、json对象{}
4、语法规则:
1)、数据在名称/值中,为一个键值对,表示的是对象的属性
2)、除了最后一个属性或对象,每个属性,每个对象都必须用逗号(,)分隔
3)、花括号({})保存对象,一对花括号表示一个对象
4)、方括号([])保存数组,一对方括号表示一个数组
5、JSON.stringify()
使用JSON.stringify()把一个js对象序列化为一个json字符串,然后保存在jsonText中
var book={
title:"javaScript",
year:2011,
};
var jsonText=JSON.stringify(book);
jsonText中的字符串是
{title:"javaScript",year:2011,}
在序列化js对象时,所有的空格,缩进和undefined都会被跳过,结果中最终都是有效的json数据类型的属性
JSON.parse()
将json字符串直接传递给JSON.parse()就可以得到相应的js值
如果传给JSON.parse()的字符串不是有效的JSON,该方法会报错
var bookcopy=JSON.parse(jsonText);
toJSON
toJSON() 方法可以将 Date 对象转换为字符串,并格式化为 JSON 数据格式。
返回字符串的 Date 对象,并格式化为 JSON 数据:
var d=new Date();
var n=d.toJSON();
n 输出结果:
2018-01-15T12:11:54.651Z
JSON中的用法:
var book={
"title":"JavaScript",
toJSON:function(){
return this.title;
};
};
var jsonText=JSON.stringify(book);
6、json_encode(),json_decode()
json_encode():对变量进行json转码,
$book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng'); $json = json_encode($book); echo $json;
结果:
{"a":"xiyouji","b":"sanguo","c":"shuihu","d":"hongloumeng"}
json_decode(): 对JSON数据进行解码,转换为PHP变量
- 语法:json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
- 注意:1、$json 为待解码的数据,必须为utf8编码的数据;
2、$assoc 值为TRUE时返回数组,FALSE时返回对象;
3、$depth 为递归深度;
4、$option 二进制掩码,目前只支持 JSON_BIGINT_AS_STRING;
5、一般只用前面两个参数,如果要数据类型的数据要加一个参数true
$book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng'); $json = json_encode($book); $array = json_decode($json,TRUE); $obj = json_decode($json); var_dump($array); var_dump($obj);
结果:
array(4) { ["a"]=> string(7) "xiyouji" ["b"]=> string(6) "sanguo" ["c"]=> string(6) "shuihu" ["d"]=> string(11) "hongloumeng" } object(stdClass)#2 (4) { ["a"]=> string(7) "xiyouji" ["b"]=> string(6) "sanguo" ["c"]=> string(6) "shuihu" ["d"]=> string(11) "hongloumeng" }