递归 json java_java多层json递归解析转换工具类代码分享

本文介绍了一种通用的多层JSON解析方法,无需Object对象,适用于处理深度嵌套的JSON结构,通过类操作轻松获取指定层级的数据。展示了如何使用示例来获取字符串、Map、ArrayList和ArrayMap等不同类型的对象。
摘要由CSDN通过智能技术生成

/**

*  @author matols.com

*  2014-12-05

*  通用多层json递归解析。主要是在没有Object对象,或者是极度复杂的多级嵌套json,情况下可以以类的方式,直接获取想要的结果。

*  支持String、Map、ArrayList、ArrayMap四种返回对象的数据获取

*  使用方式:根据json层级关系直接使用: 基节点.子节点.孙节点

*/

基节点.子节点.孙节点(基节点.x.x.x.x...) 随意获取指定层的字符、map、集合、集合map

//层级递归String

Object obj = getObjectByJson(jsonStr,"response.data.ptitle",TypeEnum.string);

System.out.println("API:"+obj.toString());

//层级递归Map

Object obj = getObjectByJson(jsonStr,"response.page",TypeEnum.map);

System.out.println("API:"+obj.toString()+((Map)obj).get("pageSize"));

//层级递归ArrayList

Object obj = getObjectByJson(jsonStr,"response.status.statusMessage",TypeEnum.arrayList);

System.out.println("API:"+obj.toString()+((List)obj).get(0));

//层级递归ArrayMap

Object obj = getObjectByJson(jsonStr,"response.data.productList",TypeEnum.arrayMap);

System.out.println("API:"+obj.toString()+((List)obj).get(1).get("pid"));

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的工具类,可以递归解析多层嵌套的 JSON 数据: ```java import org.json.JSONArray; import org.json.JSONObject; public class JsonParser { public static void parse(JSONObject json) { for (String key : json.keySet()) { Object value = json.get(key); if (value instanceof JSONObject) { System.out.println("Object: " + key); parse((JSONObject) value); } else if (value instanceof JSONArray) { System.out.println("Array: " + key); parseArray((JSONArray) value); } else { System.out.println(key + ": " + value.toString()); } } } private static void parseArray(JSONArray array) { for (int i = 0; i < array.length(); i++) { Object value = array.get(i); if (value instanceof JSONObject) { System.out.println("Object: " + i); parse((JSONObject) value); } else if (value instanceof JSONArray) { System.out.println("Array: " + i); parseArray((JSONArray) value); } else { System.out.println(i + ": " + value.toString()); } } } } ``` 使用示例: ```java public class TestJsonParser { public static void main(String[] args) { String jsonStr = "{\"name\":\"John\",\"age\":30,\"cars\":[{\"name\":\"Ford\",\"models\":[\"Fiesta\",\"Focus\",\"Mustang\"]},{\"name\":\"BMW\",\"models\":[\"320\",\"X3\",\"X5\"]}],\"address\":{\"street\":\"Downing Street 10\",\"city\":\"London\"}}"; JSONObject json = new JSONObject(jsonStr); JsonParser.parse(json); } } ``` 输出结果: ``` name: John age: 30 Array: cars Object: 0 name: Ford Array: models 0: Fiesta 1: Focus 2: Mustang Object: 1 name: BMW Array: models 0: 320 1: X3 2: X5 Object: address street: Downing Street 10 city: London ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值