我正在尝试做这样的事情,但它不起作用:
Map<String, String> propertyMap = new HashMap<String, String>();
propertyMap = JacksonUtils.fromJSON(properties, Map.class);
但是 IDE 说:
Unchecked assignment
Map to Map<String,String>
正确的做法是什么? 我只使用 Jackson,因为这是项目中已经可用的,是否有本地 Java 方式来转换 JSON 或从 JSON 转换?
在 PHP 中我会简单地 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()
也会接受 InputStream
并且您可以从字符串中获取 InputStream
通过使用以下内容:
new ByteArrayInputStream(astring.getBytes("UTF-8"));
my blog 上有关于映射器的更多说明.
关于java - 如何使用 Jackson JSON 将 JSON 字符串转换为 Map<String, String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59398588/