fastjson 将 map<Object,Object>转其他map对象
时间: 2023-08-01 18:09:05 浏览: 51
您好,如果您想将`Map<Object, Object>`转换为其他类型的`Map`对象,可以使用fastjson提供的`TypeReference`类来实现。
下面是一个将`Map<Object, Object>`转为`Map<String, String>`的示例代码:
```java
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import java.util.HashMap;
import java.util.Map;
public class Test {
public static void main(String[] args) {
Map<Object, Object> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");
// 将Map<Object, Object>转为Map<String, String>
Map<String, String> newMap = JSON.parseObject(JSON.toJSONString(map), new TypeReference<Map<String, String>>(){});
System.out.println(newMap); // 输出:{key1=value1, key2=value2}
}
}
```
在上述代码中,我们将`Map<Object, Object>`转为了`Map<String, String>`,实现方法就是使用`JSON.toJSONString`方法将`map`转为`json`字符串,然后使用`JSON.parseObject`方法将`json`字符串转为`Map<String, String>`对象。其中,`TypeReference`是一个抽象类,用于获取泛型类型信息,它是fastjson中用于解决泛型类型擦除问题的关键类。
需要注意的是,如果原`Map<Object, Object>`中的`key`或`value`不是`String`类型的,转换后可能会出现类型转换异常,此时需要根据具体情况进行类型转换或处理。