fastJson把一个String (序列化后的json),转成一个Map<String, User> 应该怎么转? (User是我自己顶一个一个类)
时间: 2024-05-14 10:13:31 浏览: 60
您可以使用以下代码进行转换:
```java
String jsonString = "{\"user\":{\"name\":\"John\",\"age\":30}}"; // 示例字符串
Map<String, Object> map = JSON.parseObject(jsonString, new TypeReference<Map<String, Object>>(){});
Map<String, User> userMap = new HashMap<>();
User user = JSON.parseObject(JSON.toJSONString(map.get("user")), User.class);
userMap.put("user", user);
```
注意:需要添加 fastjson 的依赖库。此外,建议使用泛型来避免数据类型的转换问题。
相关问题
fastjson.JSONString转MAP<String,Object>
可以通过以下代码将 `JSONString` 转换成 `Map<String, Object>`:
```java
import com.alibaba.fastjson.JSON;
import java.util.Map;
public class Example {
public static void main(String[] args) {
String jsonString = "{\"name\":\"张三\",\"age\":20,\"gender\":\"男\"}";
Map<String, Object> map = JSON.parseObject(jsonString, Map.class);
System.out.println(map);
}
}
```
这段代码使用了 fastjson 库的 `JSON.parseObject` 方法将 `JSONString` 转换成 `Map<String, Object>` 对象,其中第二个参数 `Map.class` 指定了目标对象的类型。
fastjson转List<Map<String, String>>
可以使用以下代码将 JSON 字符串转换为 List<Map<String, String>>:
```
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
String jsonString = "[{\"name\":\"Alice\",\"age\":\"20\"},{\"name\":\"Bob\",\"age\":\"25\"}]";
List<Map<String, String>> list = JSON.parseObject(jsonString, new TypeReference<List<Map<String, String>>>(){});
// 遍历 List<Map<String, String>>
for (Map<String, String> map : list) {
for (Map.Entry<String, String> entry : map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key + " : " + value);
}
}
```
代码中,首先使用 `JSON.parseObject()` 方法将 JSON 字符串转换为 List<Map<String, String>> 对象,使用 `TypeReference` 类型参数指定泛型类型。然后可以使用嵌套的循环遍历 List<Map<String, String>> 对象中的每个 Map<String, String> 对象,并输出其中的每个键值对。
阅读全文