java - 如何使用 Jackson JSON 将 JSON 字符串转换为 Map<String, String>

标签 java jackson

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

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/

相关文章:

java - 为什么我的 JFrame 的内容显示不正确?

java - 使用 java.nio.file.Paths 接口(interface)时缺少方案 (IllegalArgumentException)

java - JSTL 消息 : Don't know how to iterate over supplied "items" with forEach

java - 如何在 Eclipse 中运行 Clojure 测试?

java - LayoutManager.canScrollVertically() 时出现空指针异常

java - 如何在 REST Assured 中访问底层的 Jackson ObjectMapper?

java - jackson 和 Lombok :属性为对象时出现MismatchedInputException

Java Jackson 2.8.3 序列化包含具有循环依赖关系的抽象对象的列表

java - 处理存储为 HashMap 的 Json,其中多个元素存储在值中

java - 用 Jackson 解析 JSON 让我抓狂