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 String中的split方法使用总结

    Java String中的split方法使用总结

    这篇文章主要介绍了Java String中的split方法使用总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • java线程本地变量ThreadLocal详解

    java线程本地变量ThreadLocal详解

    ThreadLocal则为每一个线程提供了一个变量副本,从而隔离了多个线程访问数据的冲突,ThreadLocal提供了线程安全的对象封装,下面我们就来详细了解一下吧
    2019-06-06
  • Java8新特性Stream的完全使用指南

    Java8新特性Stream的完全使用指南

    这篇文章主要给大家介绍了关于Java8新特性Stream的完全使用指南,文中通过示例代码介绍的非常详细,对大家学习或者使用Java8具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-05-05
  • Java多线程工具篇BlockingQueue的详解

    Java多线程工具篇BlockingQueue的详解

    今天小编就为大家分享一篇关于Java多线程工具篇BlockingQueue的详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • JAVA和JAVAC 命令详细介绍

    JAVA和JAVAC 命令详细介绍

    这篇文章主要介绍了JAVA和JAVAC 命令详细介绍的相关资料,本文对java 和javac 命令进行了详解,并在Windows和Linux 平台分别说明,需要的朋友可以参考下
    2016-11-11
  • Java经典面试题最全汇总208道(六)

    Java经典面试题最全汇总208道(六)

    这篇文章主要介绍了Java经典面试题最全汇总208道(六),本文章内容详细,该模块分为了六个部分,本次为第六部分,需要的朋友可以参考下
    2023-01-01
  • MyBatis中关于SQL的写法总结

    MyBatis中关于SQL的写法总结

    这篇文章主要介绍了MyBatis中关于SQL的写法总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Windows下安装ElasticSearch的方法(图文)

    Windows下安装ElasticSearch的方法(图文)

    这篇文章主要介绍了Windows下安装ElasticSearch的方法(图文),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Java中try catch处理异常示例

    Java中try catch处理异常示例

    这篇文章主要给大家介绍了关于Java中try catch 的基本用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • 使用Java实现百万Excel数据导出

    使用Java实现百万Excel数据导出

    这篇文章主要为大家详细介绍了如何使用Java实现百万Excel数据导出,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2024-03-03

最新评论