我在DB中的表中有json类型的列。当我使用select查询检索时,它给出了包含json数据的列表对象。现在当我将它存储到hashmap时,它给了我异常--java.lang。 ClassCastException:org.postgresql.util.PGobject无法强制转换为HashMap
这是代码
private String getData(List inputList) {
HashMap userInput=null;
HashMap configInput=null;
PGobject obj=null;
try {
HashMap map=new HashMap();
map=(HashMap) inputList.get(0);
userInput= (HashMap) map.get("user_input");
configInput = (HashMap) map.get("config_map");
} catch(Exception e) {
}
}
inputList包含
[{user_input={"TYPE":"os","NAME":"linux.abc.com"}, config_map={"a":true,"b":"R","configHashMap":{"arg":"cpu"}}}]
我的选择查询是 -
select user_input,config_map from logTable where id= "abc";
如何解决此异常。我没有将它转换为字符串然后将其转换为hashmap。
答案 0 :(得分:0)
根本无法将JSON值强制转换为HashMap,因为无法导出值的实际类型。实现从JSON数据类型派生Java数据类型并从JSON对象创建嵌套HashMaps的函数将与Java面向对象的哲学相矛盾。 如果要从JSON值创建Java对象(从数据库中检索为字符串),请查看来自Google的GSON library。