我又一个json字符串,我想把里边的id 和 name 存到一个Map<String,String> 中,使用java,使用java 8的stream
时间: 2024-05-03 15:21:28 浏览: 21
假设你的JSON字符串长这样:
```
[
{"id": "1", "name": "Alice"},
{"id": "2", "name": "Bob"},
{"id": "3", "name": "Charlie"}
]
```
你可以使用以下代码将其转换为Map<String, String>:
```java
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
public class JsonToMapExample {
public static void main(String[] args) throws IOException {
String json = "[\n" +
" {\"id\": \"1\", \"name\": \"Alice\"},\n" +
" {\"id\": \"2\", \"name\": \"Bob\"},\n" +
" {\"id\": \"3\", \"name\": \"Charlie\"}\n" +
"]";
ObjectMapper mapper = new ObjectMapper();
Map<String, String> map = StreamSupport.stream(mapper.readTree(json).spliterator(), false)
.collect(Collectors.toMap(
node -> node.get("id").asText(),
node -> node.get("name").asText()));
System.out.println(map);
}
}
```
输出:
```
{1=Alice, 2=Bob, 3=Charlie}
```
这里使用了Jackson库来解析JSON字符串,然后使用Java 8的Stream API将其转换为Map。具体来说,我们首先将JSON字符串转换为一个JsonNode对象,然后将其转换为Stream<JsonNode>。接下来,我们使用Collectors.toMap()方法将每个JsonNode对象转换为一个Map.Entry<String, String>对象,然后将这些对象收集到一个Map<String, String>中。在这里,我们使用了JsonNode的get()和asText()方法来获取id和name属性的值。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)