JSON数据格式,JSON格式化介绍,JSON格式介绍。
1.基本介绍
首先有同学问我们在Javascript里操作的“JSON.stringify ”与 “JSON.parse ”是Javascript自带的吗?
JSON.stringify();
JSON.parse();
首先:JSON对象是javascript自带的,不过对于不同浏览器,支持不同。
支持列表
- IE8+
- chrome
- firefox
- safari
...
不支持列表
- ie7,ie6, ie6-
在现在浏览器,IE8+,chrome,firefox,safair等支持,但是在ie6,ie7是不支持的,如果用这JSON 对象,并且要求低版本的浏览器支持,你可以使用json2来支持。
附带:JSON2
早期的JSON解析器基本上就是使用JavaScript的eval()函数。由于JSON是JavaScript语法的自己,因此eval()函数可以解析、解释并返回JavaScript的对象和数组。
ECMAScript 5对解析JSON的行为进行了规范,定义了全局对象JSON。
据网上资料,浏览器对JSON
的支持情况 : IE8 chrome1+ safari3+ firefox3+
2.JSON用法
对象以"{"(左括号)开始,"}"(右括号)结束。每个"名称"后跟一个":"(冒号);"'名称/值’'对"之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。
例如:
{
"站长": "soso,QQ:8446666",
"域名": "https://www.sojson.com",
"开发语言": "最牛逼的语言——Java ^_^",
"编码": "UTF-8"
}
数组是值(value)的有序集合。一个数组以”[”(左中括号)开始,"]"(右中括号)结束。值之间运用 ","(逗号)分隔。
例如:
{
"技术使用": [
"SpringMVC",
"Mybatis ",
"Freemarker",
"Shiro"
],
"数据存储": [
"Redis",
"RDS",
"七牛云存储"
]
}
在数据传输
流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。
JSON字符串:
var data='{"name":"sojson","url":"www.sojson.com"}';//外面是用单引号“'”引用。
var data="
{\"name\":\"sojson\",\"url\":\"www.sojson.com\"}
";//外面用双引号就要用反斜杠 ‘\’。
JSON对象:
var data={"name":"sojson","url":"www.sojson.com"};
注意:如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会有疑问(抛出语法异常)。
个人推荐最好不要用eval(),因为如果可以运算的字符串,结果就会和应该的到的不一致,比如字符串里有含有"1+2
",本来就是个字符串,但是结果是以"3
"的方式输出的。
可以运用 toJSONString()或者全局的JSON.stringify()函数将JSON对象转化为JSON字符串
。
代码如下:
//将JSON对象转化为JSON字符 var jsonstr = data.toJSONString();
//将JSON对象转化为JSON字符 var jsonstr = JSON.stringify(
//或者这样data
);
总结一下:
- 在数据传输流程中,json是以文本,即字符串的形式传递的,和其他的传输类型没有任何差别。都是以字符串文本传输。
- Json.stringify()将JSON对象转为JSON字符串(也称之为序列化);
- Json.parse()将JSON字符串转为JSON对象(也称之为反序列化);
版权所属:SO JSON在线解析
原文地址:https://www.sojson.com/blog/24.html
转载时必须以链接形式注明原始出处及本声明。
如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。