Java 从数据库中检索值并序列化为json
请求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
{
"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”:“简单/复杂值”}