JSON 解析

JSON字符串解析,速度快而且使用方便的库,推荐使用fastjson。主要了解几个常用API即可。

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.46</version>
</dependency>

应用示例

import com.alibaba.fastjson.JSON

val jsonStr = """
{
    "date": "20180322", 
    "message": "Success !", 
    "status": 200, 
    "city": "北京", 
    "count": 470, 
    "data": {
        "shidu": "34%", 
        "pm25": 73, 
        "pm10": 91, 
        "quality": "良", 
        "wendu": "5", 
        "ganmao": "极少数敏感人群应减少户外活动", 
        "yesterday": {
            "date": "21日星期三", 
            "sunrise": "06:19", 
            "high": "高温 11.0℃", 
            "low": "低温 1.0℃", 
            "sunset": "18:26", 
            "aqi": 85, 
            "fx": "南风", 
            "fl": "<3级", 
            "type": "多云", 
            "notice": "阴晴之间,谨防紫外线侵扰"
        }, 
        "forecast": [
            {
                "date": "22日星期四", 
                "sunrise": "06:17", 
                "high": "高温 17.0℃", 
                "low": "低温 1.0℃", 
                "sunset": "18:27", 
                "aqi": 98, 
                "fx": "西南风", 
                "fl": "<3级", 
                "type": "晴", 
                "notice": "愿你拥有比阳光明媚的心情"
            }, 
            {
                "date": "23日星期五", 
                "sunrise": "06:16", 
                "high": "高温 18.0℃", 
                "low": "低温 5.0℃", 
                "sunset": "18:28", 
                "aqi": 118, 
                "fx": "无持续风向", 
                "fl": "<3级", 
                "type": "多云", 
                "notice": "阴晴之间,谨防紫外线侵扰"
            }, 
            {
                "date": "24日星期六", 
                "sunrise": "06:14", 
                "high": "高温 21.0℃", 
                "low": "低温 7.0℃", 
                "sunset": "18:29", 
                "aqi": 52, 
                "fx": "西南风", 
                "fl": "<3级", 
                "type": "晴", 
                "notice": "愿你拥有比阳光明媚的心情"
            }, 
            {
                "date": "25日星期日", 
                "sunrise": "06:13", 
                "high": "高温 22.0℃", 
                "low": "低温 7.0℃", 
                "sunset": "18:30", 
                "aqi": 71, 
                "fx": "西南风", 
                "fl": "<3级", 
                "type": "晴", 
                "notice": "愿你拥有比阳光明媚的心情"
            }, 
            {
                "date": "26日星期一", 
                "sunrise": "06:11", 
                "high": "高温 21.0℃", 
                "low": "低温 8.0℃", 
                "sunset": "18:31", 
                "aqi": 97, 
                "fx": "西南风", 
                "fl": "<3级", 
                "type": "多云", 
                "notice": "阴晴之间,谨防紫外线侵扰"
            }
        ]
    }
}
"""

val a = JSON.parseObject(jsonStr)
val b = a.getJSONObject("data")
val c = b.getJSONArray("forecast")
val d = c.getJSONObject(0)
var e = d.getString("date")
var f = d.getInteger("aqi")

输出结果

a: com.alibaba.fastjson.JSONObject = {"date":"20180322","data":{"shidu":"34%","yesterday":{"date":"21日星期三","sunrise":"06:19","high":"高温 11.0℃","fx":"南风","low":"低温 1.0℃","fl":"<3级","sunset":"18:26","aqi":85,"type":"多云","notice":"阴晴之间,谨防紫外线侵扰"},"pm25":73,"pm10":91,"ganmao":"极少数敏感人群应减少户外活动","forecast":[{"date":"22日星期四","sunrise":"06:17","high":"高温 17.0℃","fx":"西南风","low":"低温 1.0℃","fl":"<3级","sunset":"18:27","aqi":98,"type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"23日星期五","sunrise":"06:16","high":"高温 18.0℃","fx":"无持续风向","low":"低温 5.0℃","fl":"<3级","sunset":"18:28","aqi":118,"type":"多云","notice":"阴晴之间,谨防紫外线侵扰"},{"date":"24日星期六","sunrise":"06:14","high":"高温 21.0℃","fx":"西南风","low":"低温 7.0℃","fl":"<3级","sunset":"18:29","aqi":52,"type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"25日星期日","sunrise":"06:13","high":"高温 22.0℃","fx":"西南风","low":"低温 7.0℃","fl":"<3级","sunset":"18:30","aqi":71,"type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"26日星期一","sunrise":"06:11","high":"高温 21.0℃","fx":"西南风","low":"低温 8.0℃","fl":"<3级","sunset":"18:31","aqi":97,"type":"多云","notice":"阴晴之间,谨防紫外线侵扰"}],"wendu":"5","quality":"良"},"city":"北京","count":470,"message":"Success !","status":200}
b: com.alibaba.fastjson.JSONObject = {"shidu":"34%","yesterday":{"date":"21日星期三","sunrise":"06:19","high":"高温 11.0℃","fx":"南风","low":"低温 1.0℃","fl":"<3级","sunset":"18:26","aqi":85,"type":"多云","notice":"阴晴之间,谨防紫外线侵扰"},"pm25":73,"pm10":91,"ganmao":"极少数敏感人群应减少户外活动","forecast":[{"date":"22日星期四","sunrise":"06:17","high":"高温 17.0℃","fx":"西南风","low":"低温 1.0℃","fl":"<3级","sunset":"18:27","aqi":98,"type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"23日星期五","sunrise":"06:16","high":"高温 18.0℃","fx":"无持续风向","low":"低温 5.0℃","fl":"<3级","sunset":"18:28","aqi":118,"type":"多云","notice":"阴晴之间,谨防紫外线侵扰"},{"date":"24日星期六","sunrise":"06:14","high":"高温 21.0℃","fx":"西南风","low":"低温 7.0℃","fl":"<3级","sunset":"18:29","aqi":52,"type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"25日星期日","sunrise":"06:13","high":"高温 22.0℃","fx":"西南风","low":"低温 7.0℃","fl":"<3级","sunset":"18:30","aqi":71,"type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"26日星期一","sunrise":"06:11","high":"高温 21.0℃","fx":"西南风","low":"低温 8.0℃","fl":"<3级","sunset":"18:31","aqi":97,"type":"多云","notice":"阴晴之间,谨防紫外线侵扰"}],"wendu":"5","quality":"良"}
c: com.alibaba.fastjson.JSONArray = [{"date":"22日星期四","sunrise":"06:17","high":"高温 17.0℃","fx":"西南风","low":"低温 1.0℃","fl":"<3级","sunset":"18:27","aqi":98,"type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"23日星期五","sunrise":"06:16","high":"高温 18.0℃","fx":"无持续风向","low":"低温 5.0℃","fl":"<3级","sunset":"18:28","aqi":118,"type":"多云","notice":"阴晴之间,谨防紫外线侵扰"},{"date":"24日星期六","sunrise":"06:14","high":"高温 21.0℃","fx":"西南风","low":"低温 7.0℃","fl":"<3级","sunset":"18:29","aqi":52,"type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"25日星期日","sunrise":"06:13","high":"高温 22.0℃","fx":"西南风","low":"低温 7.0℃","fl":"<3级","sunset":"18:30","aqi":71,"type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"26日星期一","sunrise":"06:11","high":"高温 21.0℃","fx":"西南风","low":"低温 8.0℃","fl":"<3级","sunset":"18:31","aqi":97,"type":"多云","notice":"阴晴之间,谨防紫外线侵扰"}]
d: com.alibaba.fastjson.JSONObject = {"date":"22日星期四","sunrise":"06:17","high":"高温 17.0℃","fx":"西南风","low":"低温 1.0℃","fl":"<3级","sunset":"18:27","aqi":98,"type":"晴","notice":"愿你拥有比阳光明媚的心情"}
e: String = 22日星期四
f: Integer = 98

results matching ""

    No results matching ""