JackSon JSON 处理案例

热度数据: 167

本文章演示了如何使用 JackSon 实现 类 到 json 字符串之间的转换。

 中国 天津

JackSon JSON 处理案例

开源技术栏
本文章演示了如何使用 JackSon 实现 类 到 json 字符串之间的转换。

目录

a484811d1078903773c489eaa49ae209411aee461c3b6543b0e241c70b2768cc

依赖引入

  1. <dependency>
  2. <groupId>com.fasterxml.jackson.core</groupId>
  3. <artifactId>jackson-databind</artifactId>
  4. <version>2.15.2</version>
  5. </dependency>

json 转 类

这里的 @JsonProperty 中的字符串对应的就是 json 中的 key 的名字,我们需要在对应的类的被赋值变量中将这个注解设置好。

  1. package org.example;
  2. import com.fasterxml.jackson.annotation.JsonProperty;
  3. import com.fasterxml.jackson.databind.ObjectMapper;
  4. import java.io.IOException;
  5. public class Main {
  6. public static void main(String[] args) throws IOException {
  7. String json = "{\n" +
  8. " \"name\": \"John Doe\",\n" +
  9. " \"age\": 30,\n" +
  10. " \"isEmployed\": true\n" +
  11. "}";
  12. ObjectMapper mapper = new ObjectMapper();
  13. Person person = mapper.readValue(json, Person.class);
  14. System.out.println(person.getName());
  15. System.out.println(person.getAge());
  16. System.out.println(person.isEmployed());
  17. }
  18. public static class Person {
  19. @JsonProperty("name")
  20. private String name;
  21. @JsonProperty("age")
  22. private int age;
  23. @JsonProperty("isEmployed")
  24. private boolean isEmployed;
  25. @JsonProperty("name")
  26. public String getName() {
  27. return name;
  28. }
  29. @JsonProperty("name")
  30. public void setName(String name) {
  31. this.name = name;
  32. }
  33. @JsonProperty("isEmployed")
  34. public boolean isEmployed() {
  35. return isEmployed;
  36. }
  37. @JsonProperty("isEmployed")
  38. public void setEmployed(boolean isEmployed) {
  39. this.isEmployed = isEmployed;
  40. }
  41. @JsonProperty("age")
  42. public int getAge() {
  43. return age;
  44. }
  45. @JsonProperty("age")
  46. public void setAge(int age) {
  47. this.age = age;
  48. }
  49. }
  50. }

类 转 json

创建类并实现对象转 JSON 功能
接下来,我们将创建一个简单的 Java 类文件,用于演示如何将一个 Java 对象序列化为 JSON 字符串。

假设我们有一个名为 Person.java 的类文件,其内容如下:

  1. import com.fasterxml.jackson.databind.ObjectMapper;
  2. public class Person {
  3. private String name;
  4. private int age;
  5. // Constructors
  6. public Person() {}
  7. public Person(String name, int age) {
  8. this.name = name;
  9. this.age = age;
  10. }
  11. // Getters and Setters
  12. public String getName() {
  13. return name;
  14. }
  15. public void setName(String name) {
  16. this.name = name;
  17. }
  18. public int getAge() {
  19. return age;
  20. }
  21. public void setAge(int age) {
  22. this.age = age;
  23. }
  24. // Method to convert object to JSON string
  25. public String toJson() throws Exception {
  26. ObjectMapper mapper = new ObjectMapper();
  27. return mapper.writeValueAsString(this);
  28. }
  29. public static void main(String[] args) {
  30. try {
  31. Person person = new Person("John Doe", 30);
  32. System.out.println(person.toJson());
  33. } catch (Exception e) {
  34. e.printStackTrace();
  35. }
  36. }
  37. }

操作记录
作者:zhao
操作时间:2025-03-19 16:12:45 星期三 【时区:UTC 8】
事件描述备注:保存/发布
 中国 天津

想了解更多? 前往中心站点可以查看评论等数据~~

 回到顶部 前往作者主页 点击访问此文章的中心站页面