如何将 Java 对象转换为 JSON?

如何将 Java 对象转换为 JSON?要将 Java 对象或 POJO 普通旧 Java 对象 转换为 JSON 我们可以使用 JSONObject 将对象作为参数的构造函数之一 在下面的示例中 我们将 StudentPOJO 转换为 JSON 字符串 Student 类必须提供 getter 方法 JSONObject 通过调用这些方法创建 JSON 字符串 在此代码段中 我们执行以下操作 使用 setter 方法创建 Student 对象并设置其属性 创建 JSONObject 调用 object 并将 Student 对象用作其构造函数的参数 J

要将 Java 对象或 POJO (普通旧 Java 对象)转换为 JSON,我们可以使用JSONObject将对象作为参数的构造函数之一。在下面的示例中,我们将StudentPOJO 转换为 JSON 字符串。Student类必须提供 getter 方法,JSONObject通过调用这些方法创建 JSON 字符串。

在此代码段中,我们执行以下操作:

  • 使用 setter 方法创建Student对象并设置其属性。
  • 创建JSONObject调用object并将Student对象用作其构造函数的参数。
  • JSONObject使用 getter 方法生成 JSON 字符串。
  • 调用object.toString()方法获取 JSON 字符串。
 import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; import org.json.JSONObject; import java.util.Arrays; public class PojoToJSON { public static void main(String[] args) throws JsonProcessingException { Student student = new Student(); student.setId(1L); student.setName("Alice"); student.setAge(20); student.setCourses(Arrays.asList("Engineering", "Finance", "Chemistry")); JSONObject object = new JSONObject(student); String json = object.toString(); System.out.println(json); System.out.println(new Gson().toJson(student)); // Creating Object of ObjectMapper define in Jackson API ObjectMapper Obj = new ObjectMapper(); // Converting the Java object into a JSON string String jsonStr = Obj.writeValueAsString(student); // Displaying Java object into a JSON string System.out.println(jsonStr); } } 

运行此代码会产生以下结果:

{"courses":["Engineering","Finance","Chemistry"],"name":"Alice","id":1,"age":20} {"id":1,"name":"Alice","age":20,"courses":["Engineering","Finance","Chemistry"]} {"id":1,"name":"Alice","age":20,"courses":["Engineering","Finance","Chemistry"]}

上面代码中使用的Student类:

 import java.util.List; public class Student { private Long id; private String name; private int age; private List 
  
    courses; public Student(Long id, String name, int age, List 
   
     courses) { this.id = id; this.name = name; this.age = age; this.courses = courses; } Student() { } public Long getId() { return id; } public void setId(Long id) { this.id = id; } 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; } public List 
    
      getCourses() { return courses; } public void setCourses(List 
     
       courses) { this.courses = courses; } } 
      
     
    
  

Maven 依赖项

 
   
   
   
     4.0.0 
    
   
     com.example.javaobjectjson 
    
   
     JavaObjectJSON 
    
   
     1.0-SNAPSHOT 
    
    
     
     
     
       org.json 
      
     
       json 
      
      
      
     
     
     
     
       com.google.code.gson 
      
     
       gson 
      
     
       2.9.0 
      
     
     
     
       com.fasterxml.jackson.core 
      
     
       jackson-databind 
      
     
       2.12.1 
      
     
    
  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221264.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午6:32
下一篇 2026年3月17日 下午6:32


相关推荐

  • Python调用百度云api,实现截图图片文字识别

    Python调用百度云api,实现截图图片文字识别调用百度云api,实现截图图片文字识别相信大家在网上查找资料时都会遇到一些类似于pdf格式的文档,无法直接复制,手打太过于浪费时间。那么在这里我分享一个调用百度云api文字识别接口识别此类文字的python小程序。本人刚学习python时间不长,如果内容有错误还望斧正。首先我们需要去百度云官网申请一个接口点击立即使用创建应用填写需要填写的数据后点击立即创建,即可创建成功此时我们…

    2022年6月1日
    45
  • OPENWRT-LUCI开发总结-LUCI开发过程中的小技巧

    OPENWRT-LUCI开发总结-LUCI开发过程中的小技巧前言本来这个章节想排在最后在写 但是考虑到自身的码字速度 还是优先输出本篇文档 让大家先上手进行 LUCI 的相关调试 本篇整理分为以下几个部分 LUCI 基本调试技巧 LUA 脚本开发技巧 HTML 页面开发技巧 常见命令整理 官方及参考开发网址

    2026年3月17日
    2
  • Python贪吃蛇 (完整代码+详细注释+粘贴即食)

    Python贪吃蛇 (完整代码+详细注释+粘贴即食)代码#!/usr/bin/envpython#-*-coding:utf-8-*-#author:Wangdalitime:2021年1月24日16:08:44#python实现:贪吃蛇”’游戏玩法:回车开始游戏;空格暂停游戏/继续游戏;方向键/wsad控制小蛇走向”””思路:用列表存储蛇的身体;用浅色表示身体,深色背景将身体凸显出来;蛇的移动:仔细观察,是:身体除头和尾不动、尾部消失,头部增加,所以,新添加的元素放在列表头部、删除尾部元素;游戏结束判定策略:超出

    2022年5月15日
    41
  • 2025年科大讯飞翻译机对比评测:双屏翻译器2.0/4.0星火版、米兔翻译器、百度翻译机等,哪款更适合你?

    2025年科大讯飞翻译机对比评测:双屏翻译器2.0/4.0星火版、米兔翻译器、百度翻译机等,哪款更适合你?

    2026年3月14日
    2
  • 修改+首选+dns服务器地址,首选dns服务器地址怎么设置

    修改+首选+dns服务器地址,首选dns服务器地址怎么设置首选dns服务器地址怎么设置内容精选换一换修改服务IP地址,并且将DNS地址指向本机,然后修改计算机名为server。安装AD域服务之后,机器名称会自动变成“主机名+域名”的形式,例如server.huawei.com。在命令行下输入dcpromo.exe,安装AD域和DNS服务器,不能使用添加角色向导的方式将AD域和DNS服务器安装在一起。您可以将现有域名从其他服务商迁移到华为云平台提供的云…

    2022年6月14日
    35
  • linux服务网卡速率查看,linux下查看网卡速率

    linux服务网卡速率查看,linux下查看网卡速率机房交换机升级换成全千兆了 想在服务器上查看下速率 服务器当时使用 mii tool 命令查看 spamii tool veth0iteth0 negotiated10 FD linkokproduc vendor00 d8 97 model54rev0b autonegotiat

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号