小编典典

如何将 JSON 字符串转换为 Map与杰克逊 JSON

all

我正在尝试做这样的事情,但它不起作用:

Map<String, String> propertyMap = new HashMap<String, String>();

propertyMap = JacksonUtils.fromJSON(properties, Map.class);

但是 IDE 说:

未经检查的分配Map to Map<String,String>

这样做的正确方法是什么?我只使用杰克逊,因为这是项目中已经可用的,是否有一种本地 Java 方式来转换为 JSON 或从 JSON 转换?

在 PHP 中,我会简单地json_decode($str)返回一个数组。我在这里需要基本相同的东西。


阅读 71

收藏
2022-06-10

共1个答案

小编典典

[2020 年 9 月更新] 尽管我多年前的原始答案似乎很有帮助并且仍在获得支持,但我现在使用 Google 的 GSON 库,我发现它更直观。

我有以下代码:

public void testJackson() throws IOException {  
    ObjectMapper mapper = new ObjectMapper(); 
    File from = new File("albumnList.txt"); 
    TypeReference<HashMap<String,Object>> typeRef 
            = new TypeReference<HashMap<String,Object>>() {};

    HashMap<String,Object> o = mapper.readValue(from, typeRef); 
    System.out.println("Got " + o); 
}

它正在从文件中读取,但mapper.readValue()也将接受 an并且您可以使用以下命令从字符串InputStream中获取 an
InputStream

new ByteArrayInputStream(astring.getBytes("UTF-8"));

在我的博客上有更多关于映射器的解释。

2022-06-10