关于FastJson中jsonArray转换成list集合的方法

日常开发的时候,相信大部分同学不是在调用接口,就是在调用接口的路上,那么关于调用接口之后返回的数据,也会有多种的不同的处理情况,今天就分享一个遇到调用接口之后需要其中的一个数据转为 list的情况
以下是本文目录大纲:
1.接口端的数据
2.转化格式

接口端数据返回

调用http接口 返回数据类型是String

public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("__token__",getToken());
        String s = doGet("http://app-center.alibaba-inc.com/appinfo/v1/serverless/function_groups/top-odins/functions", hashMap);
        System.out.println("Result:"+s);
    }

对于返回值s 我们看下返回值的具体格式就是一个对象,而我们的目标是取到name所对应的值,那么步骤就是
1.先取到items对应的value1
2.在取到value1 中 metadata作为key的相对应的value2
3.最后取到value2中的name作为key的value3
关于FastJson中jsonArray转换成list集合的方法_第1张图片

格式转化

1.先获取到JsonObject对象

JSONObject jsonObject = JSON.parseObject(s);

2.取到JsonArray

JSONArray jsonArray = jsonObject.getJSONArray("items");

3.将数组转为list

ArrayList<String> arrayList = Lists.newArrayList();
        for (int i = 0; i < jsonArray.size(); i++) {
            Map metadata = (Map)jsonArray.getJSONObject(i).get("metadata");
            String name = (String)metadata.get("name");
            arrayList.add(name);
        }

这样之后,就可以得到里面的具体的值信息了,当然也可以封装一个方法,用来专门取到其中的某一个值,看具体的需要就好了。希望可以帮到你

若有不正,多多见谅
若有雷同,算我抄你

你可能感兴趣的:(Java基础)