fastjson转list嵌套_利用FastJson,拼接复杂嵌套json数据&&直接从json字符串中(不依赖实体类)解析出键值对...

本文介绍了如何使用FastJson库拼接复杂的嵌套JSON数据,并展示了不依赖实体类直接从JSON字符串中解析键值对的方法。通过创建JSONObject和JSONArray,实现了多层级的JSON结构,并提供了测试代码示例。
摘要由CSDN通过智能技术生成

1.拼接复杂嵌套json

FastJson工具包中有两主要的类: JSONObject和JSONArray ,前者表示json对象,后者表示json数组。他们两者都能添加Object类型的对象,但是JSONArray没有put()方法,只有add()方法。这与json数组的定义有关,json数组只能添加元素,而不能添加键值对。而JSONObject因为是一个对象,不能容纳其他对象,不能添加对象,没有add() 方法,它就只有put()方法来添加键值对。JSONObject和JSONArray 似乎只能两选一,要么用JSONObject的put()方法添加一个键值对,或使用JSONArray的add()方法添加一个元素。实际上是可以两者兼顾的,JSONObect的put(String key,Object value)方法中值参数value是Object类型,那么这个数据类型也就可以是JSONArray类型。这样的话,就可以在json对象中添加json数组中,从而轻松地拼接复杂的嵌套型的son数据。

如果要返回如下格式的json数据,常规的手工拼接将非常难以实现,且容易出错。

8e6ae064fa182c5f23c753b59e98bf53.png

1).首先从最内层开始分析,最内层是两个json对象,{item": "目录管理","url": "/system/menu/toMain"},这个json对象有相应的实体类AdminMenu,而外层是一个json数组将这两个对象包含进去。

AdminMenu menu1 = newAdminMenu();

menu1.setUrl("/system/menu/toMain");

menu1.setName("目录管理");//通过"getItem(){ return name}",所以只设置setName即可

AdminMenu menu2= newAdminMenu();

menu2.setUrl("/system/user/toMain");

menu2.setName("用户管理");

JSONArray level2Array= newJSONArray();//将两个实体类添加一json数据中,FastJson会将实体类自动转为json对象

level2Array.add(menu1);

level2Array.add(menu2);

2).然后分析Level2(json数据)和Level1(键值对)又是一个匿名json对象的两个属性,把这两个属性添加到json对象中。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值