我正在尝试做这样的事情,但它不起作用:
Map<String, String> propertyMap = new HashMap<String, String>(); propertyMap = JacksonUtils.fromJSON(properties, Map.class);
但是 IDE 说:
未经检查的分配Map to Map<String,String>
Map to Map<String,String>
这样做的正确方法是什么?我只使用杰克逊,因为这是项目中已经可用的,是否有一种本地 Java 方式来转换为 JSON 或从 JSON 转换?
在 PHP 中,我会简单地json_decode($str)返回一个数组。我在这里需要基本相同的东西。
json_decode($str)
[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
mapper.readValue()
InputStream
new ByteArrayInputStream(astring.getBytes("UTF-8"));
在我的博客上有更多关于映射器的解释。