区别
- json字符串是json对象的string形式,也就是string,但是符合json对象的格式
若是json对象,那就可以使用getXxx(..)来得到某key对应的value了
比如:
String jsonStr = “{name:\”zhu\”, age:10}”;
JSONObject json = JSONObject.fromObject(jsonStr); - json对象可以通过javascript存取属性 ; json对象装成json字符串经常用于前后台传输数据!
- json 可以理解为一个键值对对象 可以通过key取value 同样可以转换成键值对的实体对象
Json对象单个/多个对象的形式
{"no":["001","002"],"name":["1Q84(套)","解忧杂货店"],"author":["村上春树","东野圭吾、 李盈春"],"date":["2011-03","2014-05"]}
调用:
$("#latter_panel li").click(function() {
var index = $(this).index();
$("#name").empty();
$("#author").empty();
$("#date").empty();
$.getJSON("latter_book",function(obj) {
var name = "";
name += "<h4>";
name += obj.name[index];
name += "</h4>";
var author = "";
author += "<h4>";
author += obj.author[index];
author += "</h4>";
var date = "";
date += "<h4>";
date += obj.date[index];
date += "</h4>";
$("#name").append(name);
$("#author").append(author);
$("#date").append(date);
})
})
**Json对象**
{"desc":"OK","status":1000,
"com":{
"HTML":{"name":"Head First HTML与CSS(第2版)","author":"W3C","date":"2013-03"},
"CSS":{"name":"CSS权威指南(第3版)","author":"迈耶","date":"2016-03"},
"Js":{"name":"JavaScript高级程序设计(第3版) (图灵程序设计丛书)","author":"泽卡斯(Zakas. Nicholas C","date":"2011-02"}
},
"test":{
"Math":{"name":"金榜图书?(2017)李永乐王式安唯一考研数学系列:基础过关660题+复习全书+历年真题权威解析(数1)(套装共3册)","author":"W3C","date":"2013-03"},
"Zz":{"name":"金榜图书·(2016)考研徐之明政治超级红宝书","author":"迈耶","date":"2016-03"},
"En":{"name":"(2017)张剑考研英语黄皮书历年考研英语真题解析及复习思路(2013-2016)","author":"泽卡斯(Zakas. Nicholas C","date":"2011-02"}
}
}
Json字符串
(对象外加个引号?)
'{"no":["001","002"],"name":["1Q84(套)","解忧杂货店"],"author":["村上春树","东野圭吾、 李盈春"],"date":["2011-03","2014-05"]}'
相互转化
$.parseJSON( jsonstr ); //可以将json字符串转换成json对象
JSON.parse(jsonstr); //可以将json字符串转换成json对象
JSON.stringify(jsonobj); //可以将json对象转换成json对符串
eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。