public class JacksonUtilTest { public static void main(String[] args) { // 你的原始 JSON 字符串 String jsonStr = "{" + " \"clsAttrs\": [" + " {" + " \"productionCatlogLevel\": {" + " \"name\": \"3333333\"," + " \"brandInternationalName\": \"2222\"," + " \"states\": {" + " \"code\": \"停用\"," + " \"cnName\": \"停用\"" + " }" + " }" + " }" + " ]" + "}"; // 示例1:解析 JsonNode 并获取 name(你的核心需求) JsonNode jsonNode = JacksonUtil.toJsonNode(jsonStr); String name = JacksonUtil.getStringValue(jsonNode, "clsAttrs[0].productionCatlogLevel.name"); System.out.println("获取的name值:" + name); // 输出:3333333 // 示例2:获取嵌套的 states.cnName String cnName = JacksonUtil.getStringValue(jsonNode, "clsAttrs[0].productionCatlogLevel.states.cnName"); System.out.println("获取的cnName值:" + cnName); // 输出:停用 // 示例3:对象转 JSON(格式化输出) User user = new User("张三", 25); String userJson = JacksonUtil.toJson(user, true); System.out.println("对象转JSON:\n" + userJson); // 示例4:JSON 转复杂类型(List<Map>) String listJson = "[{\"name\":\"李四\",\"age\":30},{\"name\":\"王五\",\"age\":35}]"; List<Map<String, Object>> list = JacksonUtil.fromJson(listJson, new TypeReference<List<Map<String, Object>>>() {}); System.out.println("JSON转List:" + list); } // 测试用实体类 static class User { private String name; private Integer age; public User(String name, Integer age) { this.name = name; this.age = age; } // 省略 getter/setter(Jackson 序列化需要) public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } } }
相关推荐
AI-小柒2 小时前
巨省Token:OpenClaw安装部署并接入数眼智能特价模型全流程(包含Windows和Mac)一只代码狗2 小时前
OpenClaw 安装教程(Windows&&macOS)斌蔚司李2 小时前
Windows 上安装 FFmpeg桌面运维家2 小时前
Windows游戏鼠标DPI调校指南:精准定位与优化m0_738120722 小时前
网络安全编程——PHP基础Session详细讲解l1t3 小时前
利用DuckDB 1.5的json和struct功能分析llama web-ui导出的对话json文件猫头虎-前端技术3 小时前
这个项目需要Node 16,那个项目需要Node 18:如何解决多项目Node.js版本管理问题551只玄猫3 小时前
【高级程序设计 实验报告7】文件读写倔强的石头1063 小时前
融合数据库架构实践:关系型、JSON与全文检索的“一库多能”深度解析