Json初识总结

来源:互联网 发布:网络强国建设论文结尾 编辑:程序博客网 时间:2024/06/15 16:40
 JSON(JavaScript Object Notation,JavaScript对象表示法),是Javascript的一个严格的子集,利用JavaScript中的一些模式来表示结构化数据。 **JSON只是一种数据格式**,不是一种编程语言。不从属于JavaScript.

1:语法

  • 简单值:与js语法相同,可表示字符串,数值,布尔值和null。
"Hello World!"
  • 对象:无序的键值对
/***没有声明变量(JSON中没有变量的概念),末尾没有分号。*对象的属性必须加双引号。对象可嵌入对象*/{    "name":"wy",    "age":18,    "school":{        "name":"hust",        "location":"wuhan"    }}
  • 数组:有序的值的列表
[{    "name":"wy",    "age":18,    "school":{        "name":"hust",        "location":"wuhan"    } }]

数组和对象通常是JSON最外层形式,数组使用中括号,对象使用大括号。

2:解析与序列化

与XML数据结构要解析成DOM文档而且从中提取数据极为麻烦相比,JSON数据格式可以解析成有用的JS对象优势极其明显。例如上面的对象保存到user变量中,获取name
/*例如上面的JSON对象保存到user变量中,js获取name*/user[0].name/*DOM结构中查找*/doc.getElementsByTagName("user")[0].getAttribute("name")

JSON对象有两个方法:
stringify()——把js对象序列化为JSON字符串
parse()——把JSON字符串解析为原生js

var user = {               "name":"wy",               "age":18,               "school":{                   "name":"hust",                   "location":"wuhan"               }           };var jsonText = JSON.stringify(user);var userCopy = JSON.parse(jsonText);/*过滤*/var jsonText = JSON.stringify(user,["name","age"]);/*根据属性名处理要序列化对象中的属性,返回undefined会删除该属性*/var jsonText = JSON.stringify(user,function(key,value){    switch(key){        case "name":            return test;        case "age":            return undefined;        default:            return value;    }});//第三个参数用于控制结果中的缩进和空白符。var jsonText = JSON.stringify(user,null,4);

stringify()和parse()方法还能接收参数来完成过滤,缩进,还原等功能。具体可查。