# 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】 事件描述备注:保存/发布 中国 天津 [](如果不需要此记录可以手动删除,每次保存都会自动的追加记录)
开源技术栏
本文章演示了如何使用 JackSon 实现 类 到 json 字符串之间的转换。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.2</version>
</dependency>
这里的 @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 功能
接下来,我们将创建一个简单的 Java 类文件,用于演示如何将一个 Java 对象序列化为 JSON 字符串。
假设我们有一个名为 Person.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
操作时间:2025-03-19 16:12:45 星期三 【时区:UTC 8】
事件描述备注:保存/发布
中国 天津