如何将两个jsonNode合并为一个

How to merge two jsonNodes in one

我有两个 class 用户变量如下:

   val user1 = User().apply {....values here}
   val user2 = User().apply {....values here}

我想创建一个具有以下结构的 JsonNode:

   var node:JsonNode? = null
   node = {
    "user_1": {
       ...the fields of class User, assigned in variable user1
      },
    "user_2": {
     ...the values for user 2
    }
   }

我已经将对象转换为节点,但我不知道如何使用 Jackson 合并它们。

  val mapper1= ObjectMapper()
  mapper1.valueToTree<JsonNode>(user1)
  val mapper2= ObjectMapper()
  mapper2.valueToTree<JsonNode>(user2)

或者是否有更有效的方法来创建一个 json 节点结构与两个 classes ? 我正在使用 Kotlin 和 Jackson 数据库。

我还没有测试过,但我想你应该能够简单地创建一个 Map<String, User> 并将 that 转换成 JsonNode:

val user1 = User().apply {....values here}
val user2 = User().apply {....values here}

val both = mapOf("user1" to user1, "user2" to user2)

val mapper = ObjectMapper()
val result = mapper.valueToTree<JsonNode>(both)