Java中 list<JSONObject> 转 MultiValueMap<String, String>
时间: 2023-08-29 08:07:36 浏览: 369
可以使用Java 8 Stream API将`List<JSONObject>`转换为`MultiValueMap<String, String>`,具体代码如下:
```java
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.util.StringUtils;
import java.util.List;
import java.util.stream.Collectors;
public class JsonUtils {
public static MultiValueMap<String, String> convert(List<JSONObject> list) {
MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
list.stream().flatMap(jsonObject -> jsonObject.keySet().stream())
.distinct()
.forEach(key -> {
List<String> values = list.stream()
.map(jsonObject -> jsonObject.getString(key))
.filter(StringUtils::hasText)
.collect(Collectors.toList());
map.put(key, values);
});
return map;
}
}
```
此代码中,我们使用了Spring提供的`MultiValueMap`来表示Map中一个key可以对应多个value,使用Stream API将List中所有的JSONObject的key遍历并去重,然后将每个key对应的value从List中取出来并放进`MultiValueMap`中即可。
需要注意的是,此代码需要引入Spring的依赖,因为`MultiValueMap`属于Spring框架的一部分。
阅读全文