目录
[方法二:使用 Java 8 的流(Stream)API](#方法二:使用 Java 8 的流(Stream)API)
[方法三:使用 Guava 库](#方法三:使用 Guava 库)
将 List<Map<String, Object>>
转换为 List<JSONObject>
有多种方法。以下是几种常见的方法,包括使用传统的循环、Java 8 的流(Stream)API 和 Guava 库。
方法一:使用传统循环
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// 创建一个示例 List<Map<String, Object>>
List<Map<String, Object>> originalList = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "John Doe");
map1.put("age", 30);
map1.put("isStudent", false);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "Jane Doe");
map2.put("age", 25);
map2.put("isStudent", true);
originalList.add(map1);
originalList.add(map2);
// 使用传统循环转换为 List<JSONObject>
List<JSONObject> convertedList = new ArrayList<>();
for (Map<String, Object> map : originalList) {
convertedList.add(new JSONObject(map));
}
// 打印结果
for (JSONObject json : convertedList) {
System.out.println(json.toString());
}
}
}
方法二:使用 Java 8 的流(Stream)API
import org.json.JSONObject;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
// 创建一个示例 List<Map<String, Object>>
List<Map<String, Object>> originalList = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "John Doe");
map1.put("age", 30);
map1.put("isStudent", false);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "Jane Doe");
map2.put("age", 25);
map2.put("isStudent", true);
originalList.add(map1);
originalList.add(map2);
// 使用 Stream API 转换为 List<JSONObject>
List<JSONObject> convertedList = originalList.stream()
.map(JSONObject::new)
.collect(Collectors.toList());
// 打印结果
for (JSONObject json : convertedList) {
System.out.println(json.toString());
}
}
}
方法三:使用 Guava 库
如果你已经在项目中使用了 Guava 库,可以利用 FluentIterable
和 Functions
来简化转换过程。
首先,确保你已经添加了 Guava 库的依赖。如果你使用的是 Maven,可以在 pom.xml
中添加以下依赖:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.0.1-jre</version>
</dependency>
然后,使用 Guava 进行转换:
import com.google.common.collect.FluentIterable;
import com.google.common.base.Functions;
import org.json.JSONObject;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// 创建一个示例 List<Map<String, Object>>
List<Map<String, Object>> originalList = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "John Doe");
map1.put("age", 30);
map1.put("isStudent", false);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "Jane Doe");
map2.put("age", 25);
map2.put("isStudent", true);
originalList.add(map1);
originalList.add(map2);
// 使用 Guava 转换为 List<JSONObject>
List<JSONObject> convertedList = FluentIterable.from(originalList)
.transform(Functions.<Map<String, Object>>identity().compose(JSONObject::new))
.toList();
// 打印结果
for (JSONObject json : convertedList) {
System.out.println(json.toString());
}
}
}
总结
-
方法一:使用传统循环
- 创建一个空的
List<JSONObject>
。 - 遍历
List<Map<String, Object>>
,将每个Map
转换为JSONObject
并添加到新的列表中。
- 创建一个空的
-
方法二:使用 Java 8 的流(Stream)API
- 使用
stream()
方法创建一个流。 - 使用
map(JSONObject::new)
将每个Map
转换为JSONObject
。 - 使用
collect(Collectors.toList())
将流中的元素收集到一个新的列表中。
- 使用
-
方法三:使用 Guava 库
- 使用
FluentIterable.from(originalList)
创建一个可变的迭代器。 - 使用
transform
方法将每个Map
转换为JSONObject
。 - 使用
toList()
方法将结果收集到一个新的列表中。
- 使用