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来解析的主要内容,如果未能解决你的问题,请参考以下文章

java 解析json字符串格式 []

json的属性是对象,怎么用java解析该json字符串获得该对象属性呢

java 解析json字符串

java的io问题:为什么要用OutputStreamWriter呢,字节流不好用,直接用字符流writer不就行了吗

Java-json系列:用JSONObject解析和处理json数据

如何在Java中解析具有空值的JSON对象?