json相关知识

来源:互联网 发布:单片机怎么打开 编辑:程序博客网 时间:2024/06/09 00:47

1.json全称为Javascript Object Notation,即javascript对象标记法。
1.json全称为Javascript Object Notation,即javascript对象标记法。
2.json的语法规则十分简单,可称得上“优雅完美”,总结起来有:
数组(array)用方括号(“[]”)表示。
对象(Object)用大括号表示。
名称/值对组合成数组对象。
名称置于双引号中,值中有字符串、数值、布尔值、null、对象和数组。
并列的数据之间用英文逗号隔开。
{
“name”:”shusheng”,
“age”:18
}
推荐json在线验证www.json.io
3.json与xml
json相对于xml的优点:
没有结束标签,长度更短,读写更快。
能够直接被javascript解析器解析。
可以使用数组。
例子如下:
Json:

{        "name":"shusheng",        "age":18,        "friends":["Lily","Lucy","iwen"]    }
xml:
<root>        <name>shusheng</name>        <age>18</age>        <friends>Lily</friends>        <friends>Lucy</friends>        <friends>iwen</friends>    </root>

4.json的解析和生成
在javascript中,可以使用JSON.parse将json字符串解析成javascript对象,可以使用JSON.stringify将javascript对象生成为json对象。也可以使用eval函数执行。
1.eval()
eval()函数的参数是一个字符串,其作用是执行其中的javascript代码。
使用eval()函数必须对json字符串两端添加括号,因为json 对象两端为大括号,eval()函数会当成语句块来执行。造成报错。不推荐使用。
2.JSON.parse()
现在绝大多数浏览器都已支持JSON.parse(),推荐使用该方式。
JSON.parse()可以有第二个参数,是一个函数,该函数有两个参数:name和value,分别代表名称和值。当传入一个json字符串后,json的每一组名称/值都会调用此函数。该函数有返回值,返回值将赋值给当前名称(name)。
利用第二个参数,可以在解析json字符串的同时对数据进行一些处理。
3.JSON.stringify(value,[,replalcer[,space]])
value参数必选,被变换的javascript值,一般为对象或数组。
replacer可以省略。有两种选择:函数或数组。
如果是函数,则每一组的名称/值都会调用此函数,该函数返回一个值,作为名称的值变换到结果字符串中,如果返回undefined,则该成员被忽略。
如果是数组,则只有数组中存在的名称才能够被转换,且转换后顺序与数组中的值保持一致。
space可以省略。这是为了排版,方便阅读而存在的,可以在json字符串中添加空白或制表符。

<script type="text/javascript">                var str = {name:"shusheng",age:18,friends:["Lily","Lucy","iwen"]};                //生成json对象                var jsonstr = JSON.stringify(str);                console.log(jsonstr);                //解析json字符串                var jsonstr2 = JSON.parse(jsonstr);                console.log(jsonstr2);                //使用eval函数解析json字符串                var jsonstr3 = eval("(" + jsonstr+")");                console.log(jsonstr3);            </script>

这里写图片描述
添加space参数可以更友好的展示数据

这里写图片描述

接上图代码,给space传制表符结果
这里写图片描述

4.JSON与xml的转换
使用Jquery进行转换
1.下载相关文件
Jquery
Jquery.json2xml.js
Jquery.xml2json.js
2.xml转换成json对象
.xml2json(str)3.jsonxml.json2xml(str)

这里写图片描述
总结:如果被转换的javascript中含有函数或者undefined,则在转换过程中删除,含有null会转换成相应键值对。

0 0
原创粉丝点击