在 List 或 HashMap 中存储 JSON 响应

Storing JSON response in List, or HashMap

我收到一些来自改装的 JSON 回复,我不确定如何处理它,你能帮我解决一下吗?我只是想将它存储在某个地方,但我认为 List 不适合它,所以也许是 HashMap?响应看起来像

{ 
    "object" : 
    { 
        "key1" : "value1", 
        "key2" : "value2"
    }
}

等等..你能给我任何提示我应该如何存储吗?如果有任何帮助,我将不胜感激。

HashMap 是存储它的最佳方式,因为它使您可以访问可用于解释的特殊方法(例如 containsKeycontainsValuecompute)并操纵数据。

为了避免编写样板代码,我建议使用一个库来为您处理解析,例如 Jackson。如果您必须自己编写 JSON 回复,它也会有所帮助。

假设您要将 Json 字符串解析为结构化格式。您可以使用 jackson 将其映射到 hashmap。

您可以按照以下方式进行

import com.fasterxml.jackson.databind.ObjectMapper;

  public void foo() {
       String jsonString = " { \"object\" : { \"key1\" : \"value1\", \"key2\" : \"value2\" } } ";
        ObjectMapper mapper = new ObjectMapper();
        try {

            // convert JSON string to Map
            Map<String, String> map = mapper.readValue(jsonString, Map.class);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

如果你使用maven,你可以从下面的依赖中得到jackson

<dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.9.8</version>
    </dependency>

您可以在杰克逊 Main Portal page

阅读更多内容