java将JSON字符串转为 Map<String, java实体类>的格式
时间: 2024-05-07 21:23:42 浏览: 240
可以使用 Jackson 库将 JSON 字符串转换为 Map<String, Java 实体类> 的格式。下面是一个示例代码:
```java
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Map;
public class JsonToMapExample {
public static void main(String[] args) throws Exception {
// JSON字符串
String json = "{\"key1\":{\"name\":\"Alice\",\"age\":20},\"key2\":{\"name\":\"Bob\",\"age\":30}}";
// Jackson的ObjectMapper对象
ObjectMapper objectMapper = new ObjectMapper();
// 将JSON字符串转换为Map<String, Map<String, Object>>格式
Map<String, Map<String, Object>> map = objectMapper.readValue(json, new TypeReference<Map<String, Map<String, Object>>>() {});
// 遍历Map并将Map中的值转换为Java实体类
for (Map.Entry<String, Map<String, Object>> entry : map.entrySet()) {
String key = entry.getKey();
Map<String, Object> value = entry.getValue();
// 将Map中的值转换为Java实体类
User user = objectMapper.convertValue(value, User.class);
System.out.println("Key: " + key + ", Value: " + user);
}
}
public static class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
}
```
这个示例代码中,我们首先使用 ObjectMapper 将 JSON 字符串转换为 Map<String, Map<String, Object>> 的格式。然后我们遍历这个 Map,并使用 ObjectMapper 的 convertValue 方法将 Map 中的值转换为 Java 实体类。最后输出结果即可。
阅读全文