Skip to content

How to merge two jsonNodes in one

I have two variables of class User as follows:

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

I want to create a JsonNode with the following structure:

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

I have converted the objects to nodes, but I do not know how to merge them using Jackson.

  val mapper1= ObjectMapper()
  val mapper2= ObjectMapper()

Or is there a more efficient way to create one json node structure with the two classes ? I am using Kotlin and Jackson databank.



I haven’t tested it, but I guess you should be able to simply create a Map<String, User> and convert that into a 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)