java中如何将json字符串转为自定义类
时间: 2023-06-01 21:08:05 浏览: 50
可以使用Jackson库中的ObjectMapper类的readValue方法来将Json字符串转为自定义类对象。具体代码示例如下:
```
ObjectMapper objectMapper = new ObjectMapper();
MyClass myObject = objectMapper.readValue(jsonString, MyClass.class);
```
其中,MyClass为自定义的类名,需要与Json字符串中的字段名称对应。Json字符串需要符合Json格式要求,否则会抛出异常。
相关问题
java将json字符串转为list
你可以使用第三方库如Gson或Jackson来实现将json字符串转换为java中的List对象。
例如,使用Gson:
```
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.List;
String json = "[{\"name\":\"John\", \"age\":30},{\"name\":\"Jane\", \"age\":25}]";
Gson gson = new Gson();
Type listType = new TypeToken<List<Person>>() {}.getType();
List<Person> persons = gson.fromJson(json, listType);
```
在这个例子中,Person是一个自定义的类,其中包含name和age字段。
使用Jackson也是类似的:
```
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.List;
String json = "[{\"name\":\"John\", \"age\":30},{\"name\":\"Jane\", \"age\":25}]";
ObjectMapper mapper = new ObjectMapper();
try {
List<Person> persons = mapper.readValue(json, new TypeReference<List<Person>>() {});
} catch (IOException e) {
e.printStackTrace();
}
```
在这两种情况下,最终的List对象中的每个元素都是一个Person对象,表示从json字符串转换而来的数据。
json 字符串 转为 对象
要将 JSON 字符串转换为 Java 对象,可以使用 Java 中的 JSON 库,例如 Jackson。以下是使用 Jackson 将 JSON 字符串转换为对象的代码示例:
假设有一个 JSON 字符串如下:
```
String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
```
可以定义一个包含相同属性的 Java 类,例如:
```
public class Person {
private String name;
private int age;
private String city;
// getter and setter methods
}
```
然后,使用 Jackson 将 JSON 字符串转换为 Person 对象:
```
import com.fasterxml.jackson.databind.ObjectMapper;
ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(jsonString, Person.class);
```
在上面的代码中,我们首先创建了一个 ObjectMapper 实例,它是 Jackson 库的核心类,用于将 JSON 数据转换为 Java 对象或将 Java 对象转换为 JSON 数据。然后,我们使用 readValue() 方法将 JSON 字符串转换为 Person 对象,传入的第二个参数是目标 Java 类型。
此外,需要注意的是,如果 JSON 字符串中的属性名与 Java 类中的属性名不匹配,可以使用注解或配置文件进行自定义映射。