Java对象与json字符串的转换

简介: 前后台传递通常会用到Json来转换,因此java对象与json字符串之间的转换使用变得很频繁。

使用Gson--谷歌

导入依赖

//Gson pom依赖
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.5</version>
</dependency>
示例
//创建java对象
Person person = new Person();
person.setUname("zhangsan");
person.setAge(20);
person.setSex("男");

//创建Gson对象
Gson gson = new Gson();

//java对象转化成Json格式的字符串
String jsonString = gson.toJson(Person);

//Json格式的字符串转换成java对象
Person p = gson.fromJson(jsonString,Person.class);

使用FastJson--阿里

导入依赖

//fastJson pom依赖
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.62</version>
</dependency>
示例
//创建java对象
Person person = new Person();
person.setUname("zhangsan");
person.setAge(20);
person.setSex("男");

//Java对象转化成Json格式的字符串
//用法:JSONObject.toJsonString(Java对象);
String jsonString = JSONObject.toJSONString(Person);

//Json格式的字符串转换成Java对象
//用法:JSONObject.toJavaObject(JSON字符串,Java对象.class)
Person p = JSONObject.toJavaObject(jsonString,Person.class);

//Json格式字符串转Json对象
//用法:JSONObject.parseObject(JSON字符串)
JSONObject jsonObject = JSONObject.parseObject(jsonString);

Jackson ---Spring Mvc内置解析

导入依赖

jackson核心依赖
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.10.1</version>
</dependency>
示例
//创建java对象
Person person = new Person();
person.setUname("zhangsan");
person.setAge(20);
person.setSex("男");

// 创建ObjectMapper对象。
ObjectMapper mapper = new ObjectMapper();

// Java对象转Json格式字符串
jsonString = mapper.writeValueAsString(person);

// Json格式字符串转Java对象。
Person p= mapper.readValue(jsonString, Person.class);
目录
相关文章
|
22天前
|
SQL Java 索引
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
137 83
|
1月前
|
存储 安全 Java
Java零基础-字符串详解
【10月更文挑战第18天】Java零基础教学篇,手把手实践教学!
106 60
|
22天前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
53 26
|
26天前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
44 8
|
1月前
|
安全 Java 编译器
Java对象一定分配在堆上吗?
本文探讨了Java对象的内存分配问题,重点介绍了JVM的逃逸分析技术及其优化策略。逃逸分析能判断对象是否会在作用域外被访问,从而决定对象是否需要分配到堆上。文章详细讲解了栈上分配、标量替换和同步消除三种优化策略,并通过示例代码说明了这些技术的应用场景。
Java对象一定分配在堆上吗?
|
1月前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
48 6
|
1月前
|
存储 安全 Java
Java编程中的对象序列化与反序列化
【10月更文挑战第22天】在Java的世界里,对象序列化和反序列化是数据持久化和网络传输的关键技术。本文将带你了解如何在Java中实现对象的序列化与反序列化,并探讨其背后的原理。通过实际代码示例,我们将一步步展示如何将复杂数据结构转换为字节流,以及如何将这些字节流还原为Java对象。文章还将讨论在使用序列化时应注意的安全性问题,以确保你的应用程序既高效又安全。
|
1月前
|
存储 缓存 NoSQL
一篇搞懂!Java对象序列化与反序列化的底层逻辑
本文介绍了Java中的序列化与反序列化,包括基本概念、应用场景、实现方式及注意事项。序列化是将对象转换为字节流,便于存储和传输;反序列化则是将字节流还原为对象。文中详细讲解了实现序列化的步骤,以及常见的反序列化失败原因和最佳实践。通过实例和代码示例,帮助读者更好地理解和应用这一重要技术。
43 0
下一篇
DataWorks