jackson

后台json的3种格式的体现方式

jackson
Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象
和xml文档,同样也可以将json、xml转换成Java对象

核心代码:
ObjectMapper mapper = new ObjectMapper();
mapper.writeValueAsString(obj);

int count = md.getColumnCount();
map.put(md.getColumnName(i), rs.getObject(i));

		//json对象
		Student stu1 = new Student("001","aa");
		ObjectMapper om = new ObjectMapper();
		System.out.println(om.writeValueAsString(stu1));
	
		//json数组
		Student stu2= new Student("002","bb");
		List<Student> ls = new ArrayList<>();
		ls.add(stu1);
		ls.add(stu2);
		System.out.println(om.writeValueAsString(ls));
		
		//json混合格式
		Map<String, Object> map = new HashMap<>();
		map.put("total", 2);
		map.put("stus", ls);
		System.out.println(om.writeValueAsString(map));
		

在这里插入图片描述
JavaBean与Map集合转换成json字符串格式是一样的
在这里插入图片描述

java->json死循环问题

在这里插入图片描述
在这里插入图片描述
忽略双向关联的一个方向即可
在这里插入图片描述
@JsonIgnore/程序控制:
在这里插入图片描述
在这里插入图片描述

jackson所需要的所有jar jackson-all-1.6.2.jar jackson-core-asl-1.6.2.jar jackson-mapper-asl-1.6.2.jar jakarta-oro.jar 1. 背景 目前维护的产品使用jackson处理json,现整理一下jackson相关资料,希望对初次接触jackson的新手有所帮助。 jackson主页: http://jackson.codehaus.org/ jackson document: http://wiki.fasterxml.com/JacksonJavaDocs JacksonInFiveMinutes: http://wiki.fasterxml.com/JacksonInFiveMinutes 本文主要内容译自JacksonInFiveMinutes,增加了部分示例,转载请注明出处。 受java平台上各种处理xml的类库(StAX, JAXB等)启发,Jackson提供一种处理json的java类库。Jackson的目标是为开发者提供快速、准确、轻量级和用起来最爽的json处理类库。本文将概括介绍Jackson的主要功能和相关功能的使用示例。 2. 使用方式 Jackson提供三种可选的json处理方式: 1) Streaming API 又称Incremental parsing/generation, 受StAX API启发,以非关联递增方式读写json内容。 通过 org.codehaus.jackson.JsonParser读取,通过org.codehaus.jackson.JsonGenerator写入。 2) Tree Model 通过基于内存的树形结构来描述json数据,和 XML DOM类似。通过org.codehaus.jackson.map.ObjectMapper构建树,树由JsonNode节点组成。 3) Data Binding 基于属性访问或注解的方式将json和POJO对象互相转换, 受JAXB基于注解的处理方式启发。通过org.codehaus.jackson.map.ObjectMapper读写json数据。它包含两种类型: 3.1 Simple Data Binding 用于json和Java Maps, Lists, Strings, Numbers, Booleans and nulls的相互转换。 3.2 Full Data Binding 用于json和Java Bean的相互转换。 下面从使用的角度上比较三种处理方式: Streaming API 执行效率最高,读写速度最快,另外两种方式都基于它实现; Tree Model 是最灵活的; Data Binding 通常是最方便使用的;
03-19
### Jackson JSON 处理库概述 Jackson 是一种广泛使用的 Java 库,专门设计用于处理 JSON 数据。其核心功能包括将 Java 对象序列化为 JSON 字符串以及将 JSON 字符串反序列化为 Java 对象[^1]。此外,在现代 Web 开发中,JSON 成为了数据交换的主要标准,因此掌握像 Jackson 这样的工具显得尤为重要[^2]。 以下是关于 Jackson 的一些基本概念及其使用方法: #### Maven 配置 要在项目中引入 Jackson,可以通过 Maven 添加以下依赖项: ```xml <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.13.0</version> </dependency> ``` 此配置允许开发者利用 `ObjectMapper` 类来执行 JSON 和 Java 对象之间的转换操作[^3]。 #### 基本用法:序列化与反序列化 ##### 1. **序列化** 序列化是指将 Java 对象转化为 JSON 字符串的过程。可以借助 `ObjectMapper` 实现这一目标: ```java import com.fasterxml.jackson.databind.ObjectMapper; public class Main { public static void main(String[] args) throws Exception { ObjectMapper mapper = new ObjectMapper(); // 创建一个简单的 POJO User user = new User("John", 30); // 将对象转为 JSON 字符串 String jsonString = mapper.writeValueAsString(user); System.out.println(jsonString); // 输出 {"name":"John","age":30} } } class User { private String name; private int age; public User() {} public User(String name, int age) { this.name = name; this.age = age; } // Getters and Setters... } ``` ##### 2. **反序列化** 反序列化则是指从 JSON 字符串还原成对应的 Java 对象的操作: ```java // 反序列化过程 User deserializedUser = mapper.readValue("{\"name\":\"Jane\",\"age\":28}", User.class); System.out.println(deserializedUser.getName()); // 输出 Jane ``` #### 错误处理机制 当遇到无法解析的路径或者不合法的 JSON 结构时,Jackson 提供了一种异常类——`JsonProcessingException` 来捕获这些问题。如果需要自定义错误逻辑,则可扩展此类实现更复杂的业务需求[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值