string类型的json转成map
时间: 2023-04-23 19:04:11 浏览: 2250
将string类型的json转成map,可以使用Java中的json库,比如Jackson、Gson等。
以Jackson为例,可以使用ObjectMapper类的readValue方法将json字符串转成Map对象,示例代码如下:
```java
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.Map;
public class JsonToMapDemo {
public static void main(String[] args) throws IOException {
String jsonStr = "{\"name\":\"张三\",\"age\":18,\"gender\":\"男\"}";
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> map = objectMapper.readValue(jsonStr, Map.class);
System.out.println(map);
}
}
```
输出结果为:
```
{name=张三, age=18, gender=男}
```
其中,jsonStr为待转换的json字符串,Map<String, Object>为转换后的Map对象。注意,这里使用了Object类型作为Map的value类型,因为json中的值可以是任意类型。如果需要指定Map的value类型,可以使用TypeReference类,示例代码如下:
```java
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.Map;
public class JsonToMapDemo {
public static void main(String[] args) throws IOException {
String jsonStr = "{\"name\":\"张三\",\"age\":18,\"gender\":\"男\"}";
ObjectMapper objectMapper = new ObjectMapper();
Map<String, String> map = objectMapper.readValue(jsonStr, new TypeReference<Map<String, String>>() {});
System.out.println(map);
}
}
```
输出结果为:
```
{name=张三, age=18, gender=男}
```
其中,new TypeReference<Map<String, String>>() {}表示将Map的value类型指定为String类型。
阅读全文