Java之JSON操作(Jackson)
2023-09-11 14:19:57 时间
Java to JSON:
1 package json.jackson; 2 3 import bean.User; 4 import com.fasterxml.jackson.databind.ObjectMapper; 5 6 import java.io.File; 7 import java.util.Map; 8 9 /** 10 * Jackson – Java to JSON 11 * 功能:JSON与Java对象、Map等类型转换,JSON文件的读写等 12 * 依赖包:jackson-databind-2.8.11.1.jar、jackson-core-2.8.10.jar、jackson-annotations-2.8.0.jar 13 * https://github.com/FasterXML/jackson-databind 14 */ 15 public class JavaToJSON { 16 public static void main(String[] ars) throws Exception { 17 User user = new User("tom", 25, "NO.1 street"); 18 ObjectMapper objectMapper = new ObjectMapper(); 19 20 // Java对象转json,也支持bytes 21 String json = objectMapper.writeValueAsString(user); 22 System.out.println("Java对象转json:" + json); 23 24 // json转Java对象 25 User user2 = objectMapper.readValue(json, User.class); 26 System.out.println("json转Java对象" + user2); 27 28 // 读文件 29 String jsonFilePath = "src/main/java/json/jackson/JsonReader.json"; 30 User user3 = objectMapper.readValue(new File(jsonFilePath), User.class); 31 System.out.println("读取JSON文件:" + user3); 32 // 写文件 33 objectMapper.writeValue(new File(jsonFilePath), user3); 34 35 // json转map,也支持List 36 Map map = objectMapper.readValue(json, Map.class); 37 System.out.println("json转map:" + map); 38 39 // map转json字符串,支持所有类型转字符串 40 String json2 = objectMapper.writeValueAsString(map); 41 System.out.println("map转json:" + json2); 42 43 } 44 }
JsonNode:
1 package json.jackson; 2 3 import com.fasterxml.jackson.databind.JsonNode; 4 import com.fasterxml.jackson.databind.ObjectMapper; 5 6 import java.io.File; 7 import java.util.List; 8 9 /** 10 * JsonNode 11 * 处理复杂的JSON,返回多个对象的情况 12 * 从文件中读取复杂的JSON,根据key找到对应value值 13 * 依赖包:jackson-databind-2.8.11.1.jar、jackson-core-2.8.10.jar、jackson-annotations-2.8.0.jar 14 * https://github.com/FasterXML/jackson-databind 15 */ 16 public class JSONTreeDemo { 17 public static void main(String[] ars) throws Exception { 18 ObjectMapper objectMapper = new ObjectMapper(); 19 String jsonFilePath = "src/main/java/json/jackson/Json2.json"; 20 // 以树形态支持多对象的情况:支持读取多种类型 21 JsonNode jsonNode = objectMapper.readTree(new File(jsonFilePath)); 22 System.out.println("jsonNode:" + jsonNode); 23 // 根据key查询多个值,返回list 24 List<JsonNode> list = jsonNode.findValues("name"); 25 System.out.println("Values:" + list); 26 27 // 根据key查询单个值 28 String channel = jsonNode.get("channel").asText(); 29 System.out.println("查询channel的值:" + channel); 30 } 31 }
相关文章
- 深入java面向对象四:Java 内部类种类及使用解析(转)
- [Java基础] java的守护线程与非守护线程
- java基础知识回顾之java Socket学习(一)--UDP协议编程
- 实例解析java + jQuery + json工作过程(获取JSON数据)
- JAVA 注解教程(四)Java 预置的注解
- java实现遍历树形菜单方法——实体类VoteTree
- json 字符串包含数组转换为object对象是报异常java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to
- java xml转为json的两种方法
- Java虚拟机详解05----垃圾收集器及GC参数
- Java实现 LeetCode第197场周赛 (题号5460,5461,5211,5463)
- Java实现 LeetCode 768 最多能完成排序的块 II(左右便利)
- Java实现 LeetCode 138 复制带随机指针的链表
- Java实现LeetCode_0035_SearchInsertPosition
- java实现第三届蓝桥杯DNA对比
- java实现第八届蓝桥杯树型显示
- Java实现第九届蓝桥杯打印大X
- Java实现 蓝桥杯VIP 算法提高 插入排序
- Java实现 蓝桥杯VIP 算法训练 麦森数
- Java实现 蓝桥杯VIP 算法训练 明明的随机数
- (Java实现) 最大团问题 部落卫队
- Json字符串转换为java对象的各种实现方法【json_lib框架、Gson、org.json】
- Json对象与Json字符串的转化、JSON字符串与Java对象的转换
- 【JAVA】毕向东Java基础视频教程-笔记
- Java java.util.concurrent.Future的一个例子
- 使用java将json文件反序列化成java对象
- 【java】EJB(Enterprise Java Bean)概述
- 【Java用法】java 8两个List集合取交集、并集、差集、去重并集
- 零java基础搞定微信Server
- 解决idea出现的java.lang.OutOfMemoryError: Java heap space的问题
- Java和JavaScript中使用Json方法大全
- Java开发技术之成为高级java工程师必须学习的三个技术
- java.lang.OutOfMemoryError: Java heap space
- 【java】Java IO体系总览
- json 模块:处理 JSON 数据
- JAVA开发讲义(二)-Java程序设计之数据之谜四