JSON用法
对象以"{"(左括号)开始,"}"(右括号)结束。每个"名称"后跟一个":"(冒号);"'名称/值’'对"之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。
例如:
{
"站长": "soso,8446666",
"域名": "https://www.hah.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对象(也称之为反序列化);