Java 从数据库中检索值并序列化为json

Java 从数据库中检索值并序列化为json,java,jackson,jackson2,Java,Jackson,Jackson2,请求json如下所示: { "key1": "value1", "generic": { "key1":"string-type-value1" "key2":"string-type-value2" "key3":"complex-type-value3" . .. ... "keyn": "simple/complex-valuen" } } 上面的“ge

请求json如下所示:

{
    "key1": "value1",
    "generic": {
        "key1":"string-type-value1"
        "key2":"string-type-value2"
        "key3":"complex-type-value3"
        .
        ..
        ...
        "keyn": "simple/complex-valuen"
    }
}
上面的“generic”属性的值是一个复杂的json

我能够将整个复杂的json持久保存在数据库列中(通过将json反序列化为字节数组,然后将该值作为blob类型列持久保存在数据库中)。 但是,当我再次尝试从数据库检索数据时,它会给我一个JSON字符串,而不是一个复杂的JSON

如何使用Jackson库从数据库中重新创建精确的复杂json

我不需要json的字符串表示,但我需要返回原始json。

实例可以吗

final String json = "" +
        "{" +
        "    \"key1\": \"value1\"," +
        "    \"generic\": {" +
        "        \"key1\":\"string-type-value1\"," +
        "        \"key2\":\"string-type-value2\"," +
        "        \"key3\":\"complex-type-value3\"," +
        "        \"keyn\": \"simple/complex-valuen\"" +
        "    }" +
        "}";

final JsonNode node = mapper.readValue(json, JsonNode.class);
System.out.println(node.get("generic").get("key1")); // "string-type-value1"

嗨…那不是我要找的。我从数据库中获取字节数组,我的要求是从bytearray创建原始的复杂json。@Sandy:Like
final String json=new String(bytearray)?是的,与此类似……但我不希望它转换为字符串。最终字符串json=新字符串(byteArray);将给我一个json的字符串表示,这是我不想要的。。。它要么是一个
字符串
,要么是一个通用的
JsonNode
。。。或
地图
。或表示实际数据的自定义类!您到底想使用什么?基本上,我们从数据库接收blob并将其保存到bytearray中。序列化后,最终输出应如下所示:
“generic”:{“key1”:“string-type-value1”key2:“string-type-value2”key3:“complex-type-value3”…“keyn”:“简单/复杂值”}