Java JSON解析

Java JSON解析,第1张

Java JSON解析

简介: 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);

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5574487.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存