JSONObject 转 Java 自定义类
时间: 2024-06-12 07:11:03 浏览: 24
可以使用 Gson 库将 JSONObject 转换为 Java 自定义类。具体步骤如下:
1. 定义一个 Java 类,包含与 JSONObject 对应的属性。
2. 使用 Gson 的 fromJson() 方法将 JSONObject 转换为 Java 对象。
示例代码如下:
```java
import com.google.gson.Gson;
import org.json.JSONObject;
public class MyClass {
private String name;
private int age;
public static void main(String[] args) {
JSONObject jsonObject = new JSONObject("{\"name\":\"Tom\",\"age\":18}");
Gson gson = new Gson();
MyClass myClass = gson.fromJson(jsonObject.toString(), MyClass.class);
System.out.println(myClass.name); // 输出 Tom
System.out.println(myClass.age); // 输出 18
}
}
```
相关问题
JSONObject 可以和自定义对象调用BeanUtil.copyProperties()方法转换吗
可以的,BeanUtil.copyProperties() 方法可以将 JSONObject 中的属性值复制到自定义对象中对应的属性中。只需要保证 JSONObject 中的属性名和自定义对象中的属性名一致即可。例如:
```java
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
public class Test {
public static void main(String[] args) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "张三");
jsonObject.put("age", 18);
Person person = new Person();
BeanUtil.copyProperties(jsonObject, person);
System.out.println(person.getName()); // 输出:张三
System.out.println(person.getAge()); // 输出:18
}
}
class Person {
private String name;
private int age;
// 省略 getter 和 setter 方法
}
```
在上面的例子中,我们首先创建了一个 JSONObject,然后向其中添加了两个属性:name 和 age。接着,我们创建了一个自定义对象 Person,并使用 BeanUtil.copyProperties() 方法将 JSONObject 中的属性值复制到 Person 对象中。最后,我们输出了 Person 对象的两个属性值,验证复制是否成功。
实体类转JSONObject
可以使用Java中的JSONObject类将实体类转换为JSON对象,具体步骤如下:
1. 首先,需要将实体类的属性值存储到Map中,可以使用Java中的BeanUtils类来实现:
```java
Map<String, Object> map = new HashMap<>();
BeanUtils.describe(entity).forEach((key, value) -> {
if (!"class".equals(key)) {
map.put(key, value);
}
});
```
2. 然后,将Map转换为JSONObject对象:
```java
JSONObject jsonObject = new JSONObject(map);
```
这样,实体类就被成功转换为了JSONObject对象。需要注意的是,实体类的属性类型需要满足JSON对象的约束,例如,属性类型不能为自定义对象、枚举类型等。如果属性类型不符合要求,需要进行相应的转换。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)