JSONObject 转 Java 自定义类
时间: 2024-06-12 08:11:03 浏览: 248
可以使用 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转对象
要将JSONObject转换为对象,可以使用Java的JSON库来处理。以下是一个示例代码,演示了如何将JSONObject转换为对象:
```java
import com.alibaba.fastjson.JSONObject;
public class Main {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
// 将JSON字符串转换为JSONObject
JSONObject jsonObject = JSONObject.parseObject(jsonString);
// 使用getXXX()方法获取JSONObject中的属性值
String name = jsonObject.getString("name");
int age = jsonObject.getIntValue("age");
String city = jsonObject.getString("city");
// 创建自定义对象,并将JSONObject中的属性值设置到对象中
Person person = new Person();
person.setName(name);
person.setAge(age);
person.setCity(city);
System.out.println(person.getName()); // 输出:John
System.out.println(person.getAge()); // 输出:30
System.out.println(person.getCity()); // 输出:New York
}
}
class Person {
private String name;
private int age;
private String city;
// 省略getter和setter方法
}
```
以上代码使用了FastJSON库来处理JSON数据。首先,我们将JSON字符串转换为JSONObject对象。然后,通过调用getXXX()方法获取JSONObject中的属性值。最后,我们创建一个自定义的Person对象,并将JSONObject中的属性值设置到对象中。
注意,以上示例中,我们以字符串形式提供了一个JSON对象,如果你从文件或网络中获取到的是JSON字符串,你可以直接使用该字符串作为输入。如果你获取到的是JSON文件或流,你需要先将其转换为字符串,然后再进行处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [JsonObject 转换对象List](https://blog.csdn.net/m0_55913607/article/details/126645886)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [使用JSONObject将json文件转化成对象](https://blog.csdn.net/qq_40918324/article/details/78641816)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文