List<Map<String, Object>>通过JSON.toJSONString转换成String字符串 如何将其转换回来
时间: 2023-11-11 13:19:47 浏览: 211
您可以使用JSON.parseObject()方法将JSON格式的字符串转换回List<Map<String, Object>>类型的数据。该方法的使用方式如下:
String jsonString = "JSON字符串";
List<Map<String, Object>> list = JSON.parseObject(jsonString, new TypeReference<List<Map<String, Object>>>() {});
其中,jsonString是JSON格式的字符串,new TypeReference<List<Map<String, Object>>>() {}表示将JSON字符串转换成List<Map<String, Object>>类型的数据。
相关问题
优化代码 private static void processLogData(List<Map<String, Object>> generalLogData) { String logDataJsonString = JSON.toJSONString(generalLogData); List<LogData> logDatas = JSON.parseArray(logDataJsonString, LogData.class); logDatas.forEach(data -> { String time = data.getTime(); String enrollNumber = data.getEnrollNumber(); data.setUserInfo(getUserInfoByNumber(enrollNumber)); System.out.println(time); }); }
你的代码已经很优化了,没有明显的问题。在这段代码中,你将 `generalLogData` 列表转换为 JSON 字符串,并使用 `JSON.parseArray` 方法将其转换为 `LogData` 对象列表。
然后,你使用 `forEach` 方法遍历每个日志数据对象。在循环迭代中,你获取时间和注册号,并通过 `getUserInfoByNumber` 方法获取相应的用户信息。接着,将用户信息设置到日志数据对象中,并打印出时间。
这样的优化使代码更加简洁和易读,没有明显的问题。继续保持这种优化的风格,可以提高代码的可维护性和执行效率。
Object 转List<Map<String, Object>>
要将Object转换为List<Map<String, Object>>,你可以使用以下方法之一:
方法一:使用JDK1.8的流式操作和JSON库
你可以使用JDK1.8提供的流式操作和JSON库来实现这个转换。首先,将Object对象转换为JSON数组,然后使用流式操作将每个JSON对象转换为Map<String, Object>,最后将所有的Map对象收集到List中。具体代码如下所示:
```java
public List<Map<String, Object>> objToListMap(Object obj) throws GlobalException {
JSONArray jsonArr = JSONObject.parseArray(JSONObject.toJSONString(obj));
List<Map<String, Object>> listMapData = jsonArr.stream()
.map(s -> JSONObject.parseObject(JSONObject.toJSONString(s)).getInnerMap())
.collect(Collectors.toList());
return listMapData;
}
```
方法二:使用Jackson包
你还可以使用Jackson包来实现Object转换为List<Map<String, Object>>。首先,创建一个ObjectMapper对象,然后将Object对象转换为JSON字符串。接着,使用ObjectMapper的readValue方法将JSON字符串转换为List<Map<String, Object>>。具体代码如下所示:
```java
public List<Map<String, Object>> objToListMap(Object obj) throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
String jsonStr = JSONObject.toJSONString(obj);
List<Map<String, Object>> listMap = objectMapper.readValue(jsonStr, List.class);
return listMap;
}
```
方法三:使用强制类型转换
另一种方法是使用强制类型转换来将Object对象转换为List<Map<String, Object>>。首先,使用JSONObject的parseArray和toJSONString方法将Object对象转换为JSON字符串。然后,使用强制类型转换将JSON字符串转换为List<Map<String, Object>>。具体代码如下所示:
```java
public List<Map<String, Object>> objToListMap(Object obj) {
List<Map<String, Object>> listMap =(List)JSONObject.parseArray(JSONObject.toJSONString(obj));
return listMap;
}
```
以上是三种常用的方法,你可以根据你的需求选择其中一种来实现Object转换为List<Map<String, Object>>。
阅读全文
相关推荐
















