java中对象转json字符串的几种常用方式举例

 更新时间:2023年10月10日 15:37:39   作者:Swittee丶Henry  
这篇文章主要给大家介绍了关于java中对象转json字符串的几种常用方式,在Java中可以使用许多库将对象转换为JSON字符串,其中最常用的是Jackson和Gson,文中通过代码介绍的非常详细,需要的朋友可以参考下

1.使用Jackson库:

Jackson是一个常用且功能强大的Java库,用于处理JSON数据。下面是使用Jackson将对象转换为JSON字符串的示例:

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
// 创建一个对象
MyClass obj = new MyClass(1, "Example");
// 创建ObjectMapper实例
ObjectMapper objectMapper = new ObjectMapper();
try {
    // 将对象转换为JSON字符串
    String jsonString = objectMapper.writeValueAsString(obj);
    System.out.println(jsonString);
} catch (JsonProcessingException e) {
    e.printStackTrace();
}

需要依赖:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.12.5</version>
</dependency>

2.使用Gson库:

Gson是Google提供的一个Java库,它可以处理JSON数据的序列化和反序列化。以下是使用Gson将对象转换为JSON字符串的示例

import com.google.gson.Gson;
// 创建一个对象
MyClass obj = new MyClass(1, "Example");
// 创建Gson实例
Gson gson = new Gson();
// 将对象转换为JSON字符串
String jsonString = gson.toJson(obj);
System.out.println(jsonString);

相关依赖:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.8</version>
</dependency>

3.Hutool工具类

//将对象(vo)转为JSONObject
       JSONObject jsonObject = (JSONObject) JSONObject.toJSON(order);
//将对象数据转为字符串               
       String jsonString = JSON.toJSONString(jsonObject);

相关依赖:

<dependency>
			<groupId>cn.hutool</groupId>
			<artifactId>hutool-all</artifactId>
			<version>5.8.20</version>
		</dependency>

附:Java对象与JSON字符串的相互转换

 1、测试代码如下:

package com.hjp.test;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.hjp.DO.Person;
import org.junit.Test;
public class Json {
    @Test
    public void test02() {
        // 创建对象(嵌套两层)
        Person person = new Person("hjp", 20000, 22, "男", "area", new Person("lcr", 20000, 22, "男", "area"));
        // 将对象转为json字符串方法
        String jsonString = JSONObject.toJSONString(person);
        System.out.println("jsonString = " + jsonString);
        // 将json字符串转化为对象
        Person parseObject = JSON.parseObject(jsonString, Person.class);
        // 验证:嵌套格式的json字符串被全部转为对象格式
        String name = parseObject.getPerson().getName();
        System.out.println("name = " + name);
    }
}

2、使用到的实体

import lombok.Data;
@Data
public class Person {
    private String name;  // 姓名
    private int salary; // 薪资
    private int age; // 年龄
    private String sex; //性别
    private String area;  // 地区
    private Person person;// 嵌套对象(Person)
    // 构造方法
    public Person() {
    }
    public Person(String name, int salary, int age, String sex, String area) {
        this.name = name;
        this.salary = salary;
        this.age = age;
        this.sex = sex;
        this.area = area;
    }
    public Person(String name, int salary, int age, String sex, String area, Person person) {
        this.name = name;
        this.salary = salary;
        this.age = age;
        this.sex = sex;
        this.area = area;
        this.person = person;
    }
}

总结 

到此这篇关于java中对象转json字符串的几种常用方式的文章就介绍到这了,更多相关java对象转json字符串内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何利用Java递归解决“九连环”公式

    如何利用Java递归解决“九连环”公式

    这篇文章主要给大家介绍了关于如何利用Java递归解决“九连环”公式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Java对象创建内存案例解析

    Java对象创建内存案例解析

    这篇文章主要介绍了Java对象创建内存案例解析,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Java按照List内存储的对象的某个字段进行排序的实例

    Java按照List内存储的对象的某个字段进行排序的实例

    下面小编就为大家带来一篇Java按照List内存储的对象的某个字段进行排序的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Java8时间api之LocalDate/LocalDateTime的用法详解

    Java8时间api之LocalDate/LocalDateTime的用法详解

    在项目中,时间的使用必不可少,而java8之前的时间api Date和Calander等在使用上存在着很多问题,于是,jdk1.8引进了新的时间api-LocalDateTime,本文就来讲讲它的具体使用吧
    2023-05-05
  • SpringBoot实现接口的各种参数校验的示例

    SpringBoot实现接口的各种参数校验的示例

    本文主要介绍了SpringBoot实现接口的各种参数校验的示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • java并发编程专题(一)----线程基础知识

    java并发编程专题(一)----线程基础知识

    这篇文章主要介绍了java并发编程线程的基础知识,文中讲解非常详细,帮助大家更好的学习JAVA并发编程,感兴趣想学习JAVA的可以了解下
    2020-06-06
  • 解决IDEA删除子模块并重建后MAVEN无法识别的问题

    解决IDEA删除子模块并重建后MAVEN无法识别的问题

    这篇文章主要介绍了解决IDEA删除子模块并重建后MAVEN无法识别的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • SpringCloudGateway开发过程解析

    SpringCloudGateway开发过程解析

    这篇文章主要介绍了SpringCloudGateway开发过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • MyBatis一次执行多条SQL语句的操作

    MyBatis一次执行多条SQL语句的操作

    这篇文章主要介绍了MyBatis一次执行多条SQL语句的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Spring如何使用通知 Advice 管理事务

    Spring如何使用通知 Advice 管理事务

    Spring 默认采用声明式事务管理(通过配置的方式) ,也可以实现编程式事务管理,这篇文章主要介绍了Spring使用通知Advice管理事务,需要的朋友可以参考下
    2023-06-06

最新评论