在Java中,怎么更改下面代码 List<Map<String,String>> mapList = JSONArray.parseArray(list.toString(), Map.class),将其转成List<Map<string,string>>类型
时间: 2023-10-14 14:14:24 浏览: 44
可以直接使用以下代码将List<Map<String, Object>> 转换为List<Map<String, String>>类型:
```java
List<Map<String, Object>> list = new ArrayList<>();
List<Map<String, String>> result = new ArrayList<>();
// 将List<Map<String, Object>> 转换为List<Map<String, String>>
for (Map<String, Object> map : list) {
Map<String, String> newMap = new HashMap<>();
for (Map.Entry<String, Object> entry : map.entrySet()) {
newMap.put(entry.getKey(), String.valueOf(entry.getValue()));
}
result.add(newMap);
}
```
其中,对于每个Map对象,我们都将其转换为新的Map<String, String>对象,然后将其添加到结果列表中。
相关问题
更改代码错误List<Map<String,String>> mapList = JSONArray.parseArray(list.toString(), Map.class)
对不起,我的回答有误。在Java中,如果要将JSON字符串转换为List<Map<String, String>>类型,可以使用以下代码:
```java
String jsonStr = "[{'name':'Alice', 'age':18}, {'name':'Bob', 'age':20}]";
List<Map<String, String>> mapList = new ArrayList<>();
JSONArray jsonArray = JSONArray.parseArray(jsonStr);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
Map<String, String> map = new HashMap<>();
for (String key : jsonObject.keySet()) {
map.put(key, jsonObject.getString(key));
}
mapList.add(map);
}
```
其中,首先使用JSONArray.parseArray()方法将JSON字符串转换为JSONArray对象,然后遍历JSONArray对象的每个元素,将其转换为Map<String, String>类型,并添加到List中。请注意,上述代码中使用了FastJson库来解析JSON字符串。如果你使用的是其他JSON库,代码可能会有所不同。
com.alibaba.fastjson.JSONArray转List<Map<String, String>>
可以以下代码将 com.alibaba.fastjson.JSONArray换为 List<Map<String String>>:
```java
com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("name", "Alice");
jsonObject1.put("age", "20");
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("name", "Bob");
jsonObject2.put("age", "25");
jsonArray.add(jsonObject1);
jsonArray.add(jsonObject2);
List<Map<String, String>> list = new ArrayList<>();
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
Map<String, String> map = new HashMap<>();
for (String key : jsonObject.keySet()) {
map.put(key, jsonObject.getString(key));
}
list.add(map);
}
System.out.println(list);
}
}
```
输出:
```
[{name=Alice, age=20}, {name=Bob, age=25}]
```
首先,我们创建一个 com.alibaba.fastjson.JSONArray 对象 jsonArray,并向其中添加两个 com.alibaba.fastjson.JSONObject 对象 jsonObject1 和 jsonObject2。
接下来,我们创建一个 List<Map<String, String>> 对象 list,然后遍历 jsonArray 中的所有元素。对于每个元素,我们创建一个新的 HashMap<String, String> 对象 map,并将该元素转换为 com.alibaba.fastjson.JSONObject 对象 jsonObject。然后,我们将 jsonObject 中的所有键值对添加到 map 中,并将 map 添加到 list 中。
最后,我们输出 list。