您的当前位置:首页正文

Java对象转JSON三种常用的方法

2024-11-03 来源:个人技术集锦

前言

在Java编程中,我们经常需要将Java对象转换为JSON格式,以便于数据的传输和存储。本文将介绍三种常用的方法来实现Java对象到JSON的转换,分别是使用org.json.JSONObjectGoogle GsonJackson

一、使用org.json.JSONObject

虽然org.json.JSONObject通常用于解析JSON字符串,但它并不直接支持从Java对象转换为JSON。因此,上面的代码示例中使用JSONObject object = new JSONObject(student);这行代码实际上是有误的,它会导致编译错误。为了修正这个问题,我们需要手动构建JSON对象,或者考虑使用其他库,如Gson或Jackson。

然而,为了本文的完整性,我们可以展示如何使用org.json手动构建JSON对象:

JSONObject object = new JSONObject();
object.put("id", student.getId());
object.put("name", student.getName());
object.put("age", student.getAge());
object.put("courses", new JSONArray(student.getCourses()));
String json = object.toString();
System.out.println(json);

二、使用Google Gson

Gson是Google提供的一个用于将Java对象转换为JSON字符串的库,它非常流行且易于使用。要使用Gson,首先需要将Gson库添加到项目的依赖中。然后,可以通过创建Gson对象并调用其toJson()方法将Java对象转换为JSON字符串。

Gson gson = new Gson();
String json = gson.toJson(student);
System.out.println(json);

三、使用Jackson

Jackson是另一个广泛使用的Java库,用于处理JSON数据。与Gson类似,Jackson也提供了简单的方法来将Java对象转换为JSON字符串。要使用Jackson,需要添加Jackson库到项目依赖中。然后,可以创建一个ObjectMapper对象,并调用其writeValueAsString()方法将Java对象转换为JSON字符串。

ObjectMapper mapper = new ObjectMapper();
String jsonStr = mapper.writeValueAsString(student);
System.out.println(jsonStr);

结论:

虽然上面的代码示例中包含了一个小错误(关于org.json.JSONObject的使用),但它仍然展示了在Java中将对象转换为JSON的三种不同方法。在实际项目中,你可以根据自己的喜好和项目需求选择适合的库。Gson和Jackson都提供了强大的功能和灵活的配置选项,使得处理JSON数据变得简单而高效。

附:java对象转json,数字精确出现丢失问题

这两个问题都不是json工具包(比如Gson)的问题,而是由于js存储大数字丢失精度引起。

1、精度丢失例子:当js表达整数时,最多表达15位数字,如果超过15位就会出现精度丢失问题。

援引js文档:

精度

整数(不使用小数点或指数计数法)最多为 15 位。

最后几位都变为0,丢失精度

var x = 1234567890123456999;
console.log(x);

输出结果:1234567890123457000

2、数字再大一些就会出现,科学计数法

var x = 123456789012345699999999;
console.log(x);

输出结果:1.234567890123457e+23

解决办法

后台属性由数字类型改为字符串,转为json,传到前台就不会丢失了。

您可能感兴趣的文章:
Top