复杂json转java列表(fastjson)

现有json字符串如下

{   "code": "0",
	"msg": "SUCCESS",
	"data": {
		"total": 17,
		"pageNo": 1,
		"pageSize": 1000,
		"list": [{
			"indexCode": "root1111111",
			"name": "监管局",
			"parentIndexCode": "-12",
			"treeCode": "0"
		}, {
			"indexCode": "assss1d9-f09a-42fe-9aaa-0ec45dfs5sf6",
			"name": "内网",
			"parentIndexCode": "root1111111111",
			"treeCode": "0"
		}]
}

响应的java代码

//将json字符串转为JSONObject对象
JSONObject RegionInfo = JSON.parseObject(“这里放要解析的json字符串”);

//获取json中的data属性对应的字符串
System.out.println(RegionInfo.getString("data"));
System.out.println("------------------");

//将取出来的data属性对应的json字符串在转为JSONObject对象
JSONObject data = JSON.parseObject(RegionInfo.getString("data"));
System.out.println(data.getJSONArray("list"));
System.out.println("------------------");

//通过JSONArray工具将json字符串的list转为java类型的list
JSONArray array = new JSONArray(data.getJSONArray("list"));
List<RegionInfoEntity> list = JSONObject.parseArray(array.toJSONString(), “列表中元素的类型”.class);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 导入fastjson库 首先需要在项目中导入fastjson库,可以通过maven或gradle等方式添加依赖。 2. 定义Java对象 根据json数据结构,定义对应的Java对象。例如,下面是一个包含嵌套属性和数组的json数据: ``` { "name": "John", "age": 30, "address": { "city": "New York", "state": "NY" }, "phoneNumbers": ["212-555-1234", "646-555-4567"] } ``` 对应的Java对象可以定义如下: ```java public class Person { private String name; private int age; private Address address; private List<String> phoneNumbers; // getters and setters } public class Address { private String city; private String state; // getters and setters } ``` 3. 使用fastjsonjsonJava对象 使用fastjson提供的API,将json数据换为Java对象。下面是示例代码: ```java String json = "{\"name\":\"John\",\"age\":30,\"address\":{\"city\":\"New York\",\"state\":\"NY\"},\"phoneNumbers\":[\"212-555-1234\",\"646-555-4567\"]}"; Person person = JSON.parseObject(json, Person.class); ``` 其中,`JSON.parseObject()`方法用于将json字符串换为Java对象,第一个参数是json字符串,第二个参数是要换成的Java对象的class对象。 4. 访问Java对象的属性 换后的Java对象可以直接访问属性,例如: ```java System.out.println(person.getName()); // 输出 John System.out.println(person.getAddress().getCity()); // 输出 New York System.out.println(person.getPhoneNumbers().get(0)); // 输出 212-555-1234 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值