什么是JSON
JSON(JavaScriptObjectNotation,JS目标符号)是一种轻量级的数据交换格局。它基于ECMAScript(w3c制定的js规范)的一个子集,选用彻底独立于编程言语的文本格局来存储和表明数据。简练和明晰的层次结构使得JSON成为抱负的数据交换言语。易于人阅读和编写,一起也易于机器解析和生成,并有用地提升网络传输功率。——百度百科
数据传输是咱们在敲代码时,常常遇到的一个场景,前后端交互。给数据一个一致的格局有利于咱们编写和解析数据。
json,是一种数据格局,在与后端的数据交互中有较为广泛的运用。
JSON的诞生
JSON是(JavaScriptObjectNotation,JS目标符号),它是一种数据交换格局。在JSON呈现之前,大家一直用XML来传递数据。因为XML是一种纯文本格局,所以它合适在网络上交换数据。XML自身不算杂乱,可是,加上DTD、XSD、XPath、XSLT等一大堆杂乱的规范以后,任何正常的软件开发人员碰到XML都会感觉头大了,最终大家发现,即使你努力钻研几个月,也未必搞得清楚XML的规范。
总算,在2002年的一天,道格拉斯·克罗克福特(DouglasCrockford)同学为了拯救深陷水火之中一起又被某几个巨型软件企业长期捉弄的软件工程师,发明了JSON这种超轻量级的数据交换格局。
由于JSON非常简略,很快就风行Web世界,并且成为ECMA规范。几乎一切编程言语都有解析JSON的库,而在JavaScript中,咱们能够直接运用JSON,因为JavaScript内置了JSON的解析。把任何JavaScript目标变成JSON,便是把这个目标序列化成一个JSON格局的字符串,这样才能够通过网络传递给其他计算机。假如咱们收到一个JSON格局的字符串,只需求把它反序列化成一个JavaScript目标,就能够在JavaScript中直接运用这个目标了。
转义
咱们在调用jsonp接口或许调用js文件的时分,由于文件编码不同会导致呈现乱码的问题。假如你的文件呈现了非英文字符,假如调用时文件编码不一致,同样会呈现乱码状况。
这也便是为什么要数据一致格局的原因。
JSON是适用于Ajax运用程序的一种有用格局,原因是它使JavaScript目标和字符串值之间得以快速转化JSON是一种传递目标的语法
JSON是一个供给了stringify和parse办法的内置目标
stringify将js目标转化为契合json规范的字符串
parse将契合json规范的字符串转化为js目标
2.知识剖析
JSON对值的类型和格局有严厉的规则
复合类型的值只能是数组或目标,不能是函数、正则表达式目标、日期目标。
简略类型的值只要四种:字符串、数值(有必要以十进制表明)、布尔值和null(不能运用NaN,Infinity,-Infinity和undefined)。
字符串有必要运用双引号表明,不能运用单引号。
目标的键名有必要放在双引号里面。
数组或目标最终一个成员的后边,不能加逗号。
PS:需求留意的是,空数组和空目标都是合格的JSON值,null自身也是一个合格的JSON值。
JSON的语法规则
JSON的语法规则十分简略,可称得上“高雅完美”,总结起来有:
数组(Array)用方括号(“[]”)表明。
目标(Object)用大括号(”{}”)表明。
称号/值对(name/value)组合成数组和目标。
称号(name)置于双引号中,值(value)有字符串、数值、布尔值、null、目标和数组。
并列的数据之间用逗号(“,”)分隔
实例
JSON数据的书写格局是:称号/值对。
称号/值对组合中的称号写在前面(在双引号中),值对写在后边,中间用冒号隔开,
其中值能够是:数字(整数或浮点数)、字符串(在双引号中)、布尔值(true或false)、数组(在方括号中)、目标(在花括号中)、null
varjson={“password”:123456,”name”:”myname”,”Booleans”:true,”Array”:[x,y,z],”object”:{}}

json

或许是嵌套运用
转义概述
为什么需求转义?在js中咱们运用的js目标进行处理,可是在与后端数据交换的时分,咱们发送规则的json格局的字符串,所以在给后端发送或接受数据的时分,需求转义
{name:”myname”,password:123456}
“{“name”:”myname”,”password”:123456}”
其中json字符串转js目标,调用parse办法:
js目标=JSON.parse(json字符串);
js目标转json字符串,调用stringify办法:
json字符串=JSON.stringify(js目标);
3.常见问题
在json字符串转化成目标,还有eval_r(‘(‘+json字符串+’)’)这个办法,可是在对目标数据进行读取时,可能会呈现一些意外的过错:
4.解决方案
原因:eval_r获取的json目标的值中,假如有履行代码,也将照样履行!所以若不能保证数据的安全性,不要运用eval_r办法进行转义。
5.编码实战
下面是一个简略的json数据发送运用,有爱好能够阅读一下:
6.扩展考虑
咱们常看到
{name:”myname”,password:123456}

{“name”:”myname”,”password”:123456}
这样两种格局,即js目标和json,但是js目标和json有什么不一样的当地?
很多人搞不清楚JSON和Js目标的关系,甚至连谁是谁都不清楚。其实,能够这么理解:
JSON是JS目标的字符串表明法,它运用文本表明一个JS目标的信息,实质是一个字符串。

varobj={a:’Hello’,b:’World’};//这是一个目标,留意键名也是能够运用引号包裹的
varjson='{“a”:”Hello”,”b”:”World”}’;//这是一个JSON字符串,实质是一个字符串
json2

json数据在线转化工具

http://tools.jb51.net/code/jsonformat

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注