# JackSon JSON 处理案例
*开源技术栏*
本文章演示了如何使用 JackSon 实现 类 到 json 字符串之间的转换。
## 目录
[TOC]

## 依赖引入
```xml
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.2</version>
</dependency>
```
## json 转 类
这里的 `@JsonProperty` 中的字符串对应的就是 json 中的 key 的名字,我们需要在对应的类的被赋值变量中将这个注解设置好。
```
package org.example;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
String json = "{\n" +
" \"name\": \"John Doe\",\n" +
" \"age\": 30,\n" +
" \"isEmployed\": true\n" +
"}";
ObjectMapper mapper = new ObjectMapper();
Person person = mapper.readValue(json, Person.class);
System.out.println(person.getName());
System.out.println(person.getAge());
System.out.println(person.isEmployed());
}
public static class Person {
@JsonProperty("name")
private String name;
@JsonProperty("age")
private int age;
@JsonProperty("isEmployed")
private boolean isEmployed;
@JsonProperty("name")
public String getName() {
return name;
}
@JsonProperty("name")
public void setName(String name) {
this.name = name;
}
@JsonProperty("isEmployed")
public boolean isEmployed() {
return isEmployed;
}
@JsonProperty("isEmployed")
public void setEmployed(boolean isEmployed) {
this.isEmployed = isEmployed;
}
@JsonProperty("age")
public int getAge() {
return age;
}
@JsonProperty("age")
public void setAge(int age) {
this.age = age;
}
}
}
```
## 类 转 json
创建类并实现对象转 JSON 功能
接下来,我们将创建一个简单的 Java 类文件,用于演示如何将一个 Java 对象序列化为 JSON 字符串。
假设我们有一个名为 Person.java 的类文件,其内容如下:
```java
import com.fasterxml.jackson.databind.ObjectMapper;
public class Person {
private String name;
private int age;
// Constructors
public Person() {}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// Getters and Setters
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
// Method to convert object to JSON string
public String toJson() throws Exception {
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsString(this);
}
public static void main(String[] args) {
try {
Person person = new Person("John Doe", 30);
System.out.println(person.toJson());
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
------
***操作记录***
作者:[zhao](https://www.lingyuzhao.top//index.html?search=4 "zhao")
操作时间:2025-03-19 16:12:45 星期三 【时区:UTC 8】
事件描述备注:保存/发布
中国 天津
[](如果不需要此记录可以手动删除,每次保存都会自动的追加记录)