简介: JSON: Javascript Obwject Notation JS对象简谱 , 是一种轻量级的数据交换格式.
我们知道在java中使用类和类中的属性是这样的
以书“Book”为例:
class Book{ private String name; private String info; get/set... } Book b = new Book(); b.setName(“金苹果”); b.setInfo(“种苹果”); ....
在js中是这样的:
var b = new Object(); b.name = "金苹果"; b.info = "种苹果";
在XML中是这样的:
//Book类 金苹果 //名字属性种苹果 //简介属性
而在JSON中是这样的:
{ "name":"金苹果", "info":"种苹果" }
从最后两个对比可以看出,JSON比XML更简洁更易于传输和调用,被现今绝大多数程序员所选择
和使用,但也有一些不便的地方,如下面这段代码:
{ "code": "10000", "charge": false, "msg": "查询成功", "result": { "status": "0", "msg": "ok", "result": { "city": "安顺", "cityid": "111", "citycode": "101260301", "date": "2015-12-22", "week": "星期二", "weather": "多云", "temp": "16", "temphigh": "18", "templow": "9", "img": "1", "humidity": "55", "pressure": "879", "windspeed": "14.0", "winddirect": "南风", "windpower": "2级", "updatetime": "2015-12-22 15:37:03", "index": [ { "iname": "空调指数", "ivalue": "较少开启", "detail": "您将感到很舒适,一般不需要开启空调。" }, { "iname": "运动指数", "ivalue": "较适宜", "detail": "天气较好,无雨水困扰,较适宜进行各种运动,但因气温较低,在户外运动请注意增减衣物。" } ], "aqi": { "so2": "37", "so224": "43", "no2": "24", "no224": "21", "co": "0.647", "co24": "0.675", "o3": "26", "o38": "14", "o324": "30", "pm10": "30", "pm1024": "35", "pm2_5": "23", "pm2_524": "24", "iso2": "13", "ino2": "13", "ico": "7", "io3": "9", "io38": "7", "ipm10": "35", "ipm2_5": "35", "aqi": "35", "primarypollutant": "PM10", "quality": "优", "timepoint": "2015-12-09 16:00:00", "aqiinfo": { "level": "一级", "color": "#00e400", "affect": "空气质量令人满意,基本无空气污染", "measure": "各类人群可正常活动" } }, "daily": [ { "date": "2015-12-22", "week": "星期二", "sunrise": "07:39", "sunset": "18:09", "night": { "weather": "多云", "templow": "9", "img": "1", "winddirect": "无持续风向", "windpower": "微风" }, "day": { "weather": "多云", "temphigh": "18", "img": "1", "winddirect": "无持续风向", "windpower": "微风" } } ], "hourly": [ { "time": "16:00", "weather": "多云", "temp": "14", "img": "1" }, { "time": "17:00", "weather": "多云", "temp": "13", "img": "1" } ] } } }
这种大量的属性会让你看的时候头皮发麻,以至于根本找不到哪一个归属于哪个,当然也有解决的
方法,可以从浏览器里输入JSON的字样,随便带你进去一个,如这个网址JSON在线解析及格式化验证 - JSON.cn
可以对上面的代码进行解析,可以很好的找到相关属性的位置。
我们可以看上面的代码可以发现有许多嵌套的地方,在JSON格式中可以与对象互相嵌套 [元素1,元素2...]的方式来进行元素的嵌套。
{ "name":"老师", "age":18, "pengyou":["张三","李四","王二","麻子",{ "name":"宇恒学生", "info":"在不断地学习" }], "heihei":{ "name":"大长刀", "length":"40m" } }
既然是Java与JSON,那JSON又能为Java做些什么?
它可以将Java中的对象 快速的转换为 JSON格式的字符串.
它可以将JSON格式的字符串, 转换为Java的对象.
可以通过Gson和FastJson来将对象转换为JSON字符串和将JSON字符串转换为对象,这两个是常用的方式,Gson是谷歌的,FastJson是阿里的,使用时要下载和引入相应的JAR包。
//转换JSON字符串的步骤: //1. 引入JAR包 //2. 在需要转换JSON字符串的位置编写如下代码即可: //String json = new Gson().toJSON(要转换的对象); //案例: Book b = BookDao.find(); String json = new Gson().toJson(b); System.out.println(json);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)