Json是什么
Json官方的称呼是JavaScript对象表示法,可以理解为JavaScript的一种数据结构类型,用来存储数据的一种方式
Json格式
- 简单形式
符合{“key”:“value”}格式的JavaScript语句就是Json
- 复杂一点
{“key”:“value”,“key”:“value”,…},大括号里可以放随意多个这样的键值对
- 数组形式
[{“key”:“value”},{“key”:“value”},{“key”:“value”}…],用中括号将多个简单形式的Json括起来就是数组形式了
Json键值对的可用类型
key值都是带双引号的字符串,value值可以是
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在中括号中)
- 对象(在大括号中)
- null
读取和修改
Json将数据存储起来,肯定是要读取的,如何读取?分为是数组和非数组两种情况
- 非数组形式-读取
var myobj,x;
myobj = {"name":"xiangyu"};
x = myobj.name; //通过.号读取
- 修改
var myobj,x;
myobj = {"name":"xiangyu"};
myobj.name = "修改值";
- 数组形式-读取
var myobj,x;
myobj = [{"name":"xiangyu","info":1},{"name":"heiehei","info":2}];
x = myobj[0].name;
- 循环读取Json里的数据,数组类似
var myObj = { "name":"runoob", "alexa":10000, "site":null };
for (x in myObj) {
document.getElementById("demo").innerHTML += x + "<br>";
}
- 删除
var myobj,x;
myobj = [{"name":"xiangyu","info":1},{"name":"heiehei","info":2}];
delete myobj[0].name; //在想要删除的属性前加上delete即可
字符串和JavaScript对象之间转换
- JSON.parse(),将字符串转为JavaScript对象,可以看到这个字符串符合Json格式,只有这样的字符串才能转为Javascript对象
var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }'); //要注意这括号里的是字符串,不是Json
document.getElementById("demo").innerHTML = obj.name + ":" + obj.site;
- JSON.stringify(),将JavaScript对象转为字符串,转成的字符串也符合Json格式
var obj = { "name":"runoob", "alexa":10000, "site":"www.runoob.com"};
var myJSON = JSON.stringify(obj);
document.getElementById("demo").innerHTML = myJSON;