1

Question is related to adding json objects to array using karate API Below is my code.

    * def appendBasics =
    """
    function() {
    var group = {}
group['details'] = group['details'] || []
     karate.append(group['details'], { b: 2 })
     karate.append(group['details'], { b: 4 })
     karate.log(group)
    }
    """
    * def bar = appendBasics()
    * print bar

Output which I am expecting is

{
  "details": [
    {
      "b": "2"
    },
    {
      "b": "4"
    }
  ]
}

Output which I am getting is

{
  "details": [
  ]
}

Could you please suggest.

Shreyansh Jain
  • 498
  • 4
  • 7

1 Answers1

0

Just use native array operations. The use of karate.append() etc and even karate.map() is not needed any more. I revised your code below:

* def appendBasics =
"""
function() {
  var group = {}
  group['details'] = group['details'] || []
  group['details'].push({ b: 2 });
  group['details'].push({ b: 4 });
  return group;
}
"""
* def bar = appendBasics()
* print bar

Refer: https://stackoverflow.com/a/76091034/143475

Peter Thomas
  • 54,465
  • 21
  • 84
  • 248