JSONObject与String、实体类互相转换

本文介绍了如何在Java中将实体类对象转换为String类型的JSON字符串(JSONObject.toJSONString()),以及如何从JSON字符串反序列化回实体类对象(JSONObject.toJavaObject()和parseObject()方法)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实体类对象转换成String类型的JSON字符串

User u = new User();
String jsonStr = JSONObject.toJSONString(u);

String类型的JSON字符串转换成实体类对象

String jsonStr = "{\"userName\":\"admin\"}";
Refund r = JSONObject.toJavaObject(jsonStr,User.class);

Json字符串转换成JSONObject对象

JSONObject jsonObject = JSONObject.parseObject(jsonStr);

JSON字符串转换成实体类对象

User u = JSONObject.parseObject(jsonStr,User.class);

### Java 中实现 `JSONObject` 实体类对象的双向转换 #### 将 `JSONObject` 转换实体类对象 为了将 `JSONObject` 转换实体类对象,通常可以借助第三方库如 Jackson 或 Gson 来简化这一过程。以下是使用 Jackson 库的一个例子: ```java import com.fasterxml.jackson.databind.ObjectMapper; import org.json.JSONObject; public class JsonToObjectExample { public static void main(String[] args) throws Exception { String jsonString = "{\"name\":\"John\", \"age\":30}"; JSONObject jsonObject = new JSONObject(jsonString); ObjectMapper objectMapper = new ObjectMapper(); Person person = objectMapper.readValue(jsonObject.toString(), Person.class); System.out.println(person.getName()); // 输出 John System.out.println(person.getAge()); // 输出 30 } } ``` 这里展示了如何利用 `ObjectMapper` 类中的 `readValue()` 方法完成从 JSON 字符串到 Java 对象的映射[^1]。 #### 将实体类对象转换为 `JSONObject` 同样地,在反方向上——即把 Java 的 POJO (Plain Old Java Object) 映射成 JSON 格式的字符串或 `JSONObject` ——也可以采用相同的方式来进行处理: ```java import com.fasterxml.jackson.databind.ObjectMapper; import org.json.JSONObject; public class ObjectToJsonExample { public static void main(String[] args) throws Exception { Person person = new Person("Alice", 28); ObjectMapper objectMapper = new ObjectMapper(); String jsonInString = objectMapper.writeValueAsString(person); JSONObject jsonObject = new JSONObject(jsonInString); System.out.println(jsonObject.getString("name")); // 输出 Alice System.out.println(jsonObject.getInt("age")); // 输出 28 } } class Person { private String name; private int age; public Person() {} public Person(String name, int age) { this.name = name; this.age = age; } // Getters and Setters... @Override public String toString(){ return "Person{name='" + name + "', age=" + age + "}"; } } ``` 这段代码说明了怎样通过调用 `writeValueAsString()` 函数先获得一个标准格式化的 JSON 字符串表示形式,再进一步创建对应的 `JSONObject` 实例。 对于更复杂的场景下涉及到大量不同类型的对象之间的相互化时,则可能需要考虑引入专门用于解决此类问题框架的支持,比如 MapStruct 提供了一种声明性的方法来定义这些映射关系并自动生成必要的代码片段以提高开发效率和减少错误率[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mandy3651423

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值