从posgres中检索json类型数据并将其存储在hashmap

时间:2015-08-11 12:13:20

标签: java json postgresql

我在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。

1 个答案:

答案 0 :(得分:0)

根本无法将JSON值强制转换为HashMap,因为无法导出值的实际类型。实现从JSON数据类型派生Java数据类型并从JSON对象创建嵌套HashMaps的函数将与Java面向对象的哲学相矛盾。 如果要从JSON值创建Java对象(从数据库中检索为字符串),请查看来自Google的GSON library