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
转载时必须以链接形式注明原始出处及本声明。
如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。
