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