Object型转list,jsonObject型转list方法,亲测可用

您所在的位置:网站首页 jsonlist对象 Object型转list,jsonObject型转list方法,亲测可用

Object型转list,jsonObject型转list方法,亲测可用

2023-11-09 18:54| 来源: 网络整理| 查看: 265

最近工作过程中,遇到一个场景,后端使用Object类型来接收前端传来的json串。但是做处理时需要将object类型的数据转为List类型。多次转换不成功,网上内容乱糟糟,在一番自己的研究后,有一个亲测可用的方法来实现Object类型数据转list。

首先,将Object类型转为jsonObject类型,这里的paramJson是Object类型的

JSONObject json = (JSONObject) JSON.toJSON(paramJson);

然后通过翻看JSONObject类的源码我看到了这么一个方法

public Object get(Object key) { Object val = this.map.get(key); if (val == null && (key instanceof Number || key instanceof Character || key instanceof Boolean || key instanceof UUID)) { val = this.map.get(key.toString()); } return val; } 通过KEY值将对象的value取出,以Object类型返回,这个方法让我看到了希望。接下来我便尝试通过getkey来取出的value,并对value使用强制转换的形式来转成list List mapList = (List)json.get("updateList");

运行了一下,没问题,成功了。下面总结下关键的两行转换代码

Object paramJson; //转换依靠下列两行即可 JSONObject json = (JSONObject) JSON.toJSON(paramJson); List mapList = (List)json.get("updateList");

用个完整例子补充下:

get的内容是返回的键

public static void main(String[] args){ String url = "http://xxxxxxxx:xxxx/xxx/xx/xx/xxxxxx"; String zjhm = "12345998888"; String ksxm = "xxxx"; String param = "{'zjhm':'" + zjhm + "'}"; String result = getAPIResult(url, param); JSONObject jsonObject = JSONObject.parseObject(result); List mapList = (List)jsonObject.get("data"); String mapLists = (String) jsonObject.get("result"); String message = (String) jsonObject.get("message"); System.out.append(result); System.out.println("----------------------" + mapList); System.out.println(mapLists); System.out.println(message); }

这是string类型的result:

{"result":"1","message":"查询成功!","data":[{"zsbh":"xxxxxxxxxxxx","xm":"xxx","ksdm":"cnepm","ksmc":"执业资格考试成绩合格证明","pcmc":"2020年第一批","ksnd":"2020","kspc":"01"},{"zsbh":"xxxxxxxxxxx","xm":"xxx","ksdm":"cnepm","ksmc":"执业资格考试成绩合格证明","pcmc":"2022年第一批","ksnd":"2022","kspc":"01"}]}

这是List 类型的mapList:

[{"ksdm":"cnepm","xm":"XXX","zsbh":"202055555500002","kspc":"01","ksmc":"护士考试成绩合格证明","ksnd":"2020","pcmc":"2020年第一批"},{"ksdm":"cnepm","xm":"嘻嘻嘻","zsbh":"2022555555555001","kspc":"01","ksmc":"护士执业资格考试成绩合格证明","ksnd":"2022","pcmc":"2022年第一批"}]

这是result和message:

1 查询成功!

通过上述一个请求外部接口并处理返回值的例子,可以看到更具体的用法。

工作之余,匆匆记录,表述有问题欢迎指正。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3