JAVA字符串用json来解析
Posted amcomputer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA字符串用json来解析相关的知识,希望对你有一定的参考价值。
JAVA字符串用解析json来解析
一 背景介绍
在开发过程中,经常会遇到参数解析的情况。特别是对字符串进行解析,笔者在开发过程中也遇到过这种情况。特别是在查询后端数据对返回对象中。返回内容比较复杂。往往是数组对象中又嵌套另外一层数组对象,最糟糕的情况是,里面还有好几层。如果直接用字符串进行切割,那解析起来非常的糟糕。所以,一直很自然的思想就是用JSON来解析这些数据。
二 导入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.3.1</version>
</dependency>
fastjson 是阿里巴巴开源的比较常用的解析工具。其他内容就不具体说了。
具体看一个case, 看完了你就能自己写了。
二 开始实战
json = /*
"error": 0,
"status": "success",
"results": [
"currentCity": "北京",
"index": [
"title": "穿衣",
"level": "中等",
"tipt": "穿衣指数",
"des": "年老体弱者宜着大衣。"
,
"title": "紫外线强度",
"level": "中等",
"tipt": "紫外线强度指数",
"des": "属中等强度紫外线辐射天气"
]
]
*/
观察上面字符串数据,可以发现分为4层。 开始解析:
class Test()
@Test
void testDemo()
// 转化请求的 json 数据
JSONObject jsonObject = JSONObject.parseObject(json);
// 获取 results 数组
JSONArray results = jsonObject.getJSONArray("results");
for (int i = 0; i < results.size(); i++)
// 获取杭州
String currentCity = results.getJSONObject(i).getString("currentCity");
//获取index数组
JSONArray arr = results.getJSONObject(i).getJSONArray("index");
//遍历 index 数组
for (int j = 0; j < arr.size(); j++)
//获取 title,其他同理
String title = index.getJSONObject(j).getString("title");
以上是关于JAVA字符串用json来解析的主要内容,如果未能解决你的问题,请参考以下文章
json的属性是对象,怎么用java解析该json字符串获得该对象属性呢
java的io问题:为什么要用OutputStreamWriter呢,字节流不好用,直接用字符流writer不就行了吗