在 List 或 HashMap 中存储 JSON 响应
Storing JSON response in List, or HashMap
我收到一些来自改装的 JSON 回复,我不确定如何处理它,你能帮我解决一下吗?我只是想将它存储在某个地方,但我认为 List 不适合它,所以也许是 HashMap?响应看起来像
{
"object" :
{
"key1" : "value1",
"key2" : "value2"
}
}
等等..你能给我任何提示我应该如何存储吗?如果有任何帮助,我将不胜感激。
HashMap 是存储它的最佳方式,因为它使您可以访问可用于解释的特殊方法(例如 containsKey
、containsValue
和 compute
)并操纵数据。
为了避免编写样板代码,我建议使用一个库来为您处理解析,例如 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
阅读更多内容
我收到一些来自改装的 JSON 回复,我不确定如何处理它,你能帮我解决一下吗?我只是想将它存储在某个地方,但我认为 List 不适合它,所以也许是 HashMap?响应看起来像
{
"object" :
{
"key1" : "value1",
"key2" : "value2"
}
}
等等..你能给我任何提示我应该如何存储吗?如果有任何帮助,我将不胜感激。
HashMap 是存储它的最佳方式,因为它使您可以访问可用于解释的特殊方法(例如 containsKey
、containsValue
和 compute
)并操纵数据。
为了避免编写样板代码,我建议使用一个库来为您处理解析,例如 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
阅读更多内容