Java 在列表或HashMap中存储JSON响应
我从改造中得到了一些JSON响应,我不知道如何处理它,你能帮我吗?我只是想把它存储在某个地方,但我认为列表对它不好,所以也许HashMap?反应看起来像Java 在列表或HashMap中存储JSON响应,java,android,json,retrofit,Java,Android,Json,Retrofit,我从改造中得到了一些JSON响应,我不知道如何处理它,你能帮我吗?我只是想把它存储在某个地方,但我认为列表对它不好,所以也许HashMap?反应看起来像 { "object" : { "key1" : "value1", "key2" : "value2" } } 等等。。你能给我一些提示吗?我该如何储存?非常感谢您的帮助。HashMap是存储它的最佳方式,因为它允许您访问特殊方法(例如containsKey、containsVa
{
"object" :
{
"key1" : "value1",
"key2" : "value2"
}
}
等等。。你能给我一些提示吗?我该如何储存?非常感谢您的帮助。HashMap是存储它的最佳方式,因为它允许您访问特殊方法(例如
containsKey
、containsValue
和compute
),您可以使用这些方法来解释和操作数据
为了避免编写样板代码,我建议使用库为您处理解析,例如。如果您需要编写自己的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();
}
}
}
import com.fasterxml.jackson.databind.ObjectMapper;
公共图书馆{
字符串jsonString=“{\'object\':{\'key1\':\'value1\',\'key2\':\'value2\'}”;
ObjectMapper mapper=新的ObjectMapper();
试一试{
//将JSON字符串转换为映射
Map Map=mapper.readValue(jsonString,Map.class);
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
如果您使用的是maven,您可以从以下依赖项中获得jackson
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
com.fasterxml.jackson.core
Json的结构是否已固定和定义?如果是这样,您可以使用Jackson将其转换为Java对象。另外,您希望存储此结果的目的是什么?我的意思是,如果你的主要动机是将它存储在某个地方,那么将它简单地存储为字符串的问题是什么?