首页 > 解决方案 > 杰克逊 - 使用 JsonNode 类型时对象未保存为基本 JSON

问题描述

我正在使用 Spring Boot (Kotlin) 和 Mongo 将一些数据保存到我的数据库中。

我有这样定义的 Mongo 集合:

@Document(collection = "events")
data class Event(
    val id: String,
    val payload: JsonNode
)

然后,当我要保存它时,我正在使用:objectMapper.convertValue(it.payload)

但是我在数据库中看到的有点奇怪,它就像某种实际的内存表示,当我想要的是简单的键和值时:

"payload": {
        "_children": {
            "title": {
                "_children": {
                    "value": {
                        "_value": "Solutions green",
                        "_class": "com.fasterxml.jackson.databind.node.TextNode"
                    }
                },
                "_nodeFactory": {
                    "_cfgBigDecimalExact": false
                },
                "_class": "com.fasterxml.jackson.databind.node.ObjectNode"
            },
            "description": {
                "_value": "Earum et debitis officiis porro distinctio quasi et.",
                "_class": "com.fasterxml.jackson.databind.node.TextNode"
            },

该有效负载可以包含任何内容,因此通用 Json 因此使用 JsonNode。

上面插入的是什么,我实际上如何保存基本的 json 表示。

任何帮助,将不胜感激。

谢谢。

标签: jsonspringspring-bootkotlinjackson

解决方案


推荐阅读