Как создать массив JSON, извлекая ответ из API в Каратэ

#karate

Вопрос:

Я хочу извлечь некоторые значения и сохранить их в массиве в формате JSON.

У меня есть свой код в karate-config.js файл в качестве вызываемого мной API должен вызываться только один раз, а результаты должны храниться в массиве, чтобы его можно было позже использовать в других функциях.

  var result = karate.callSingle('classpath:examples/users.feature@country',config);
 config.array = []
     for (var i=0; i<result.response.length; i  ){
          config.array.push({ 'userId': result.response[i].id, 'country': result.response[i].country});
     }
karate.log(config.array)
 

Результаты

 [object Object],[object Object] 
 

Ожидаемые Результаты

                 [
                    {
                    "userId" : 931,
                    "country" : "USA"
                    },

                    {
                    "userId" : 709,
                    "country" : "HK"
                    }
                ]

 

Ответ №1:

Даже если журнал показывает это таким образом, данные могут быть в порядке — есть некоторые ограничения с JSON в JS по сравнению с остальной частью Karate и Java.

Просто добавьте преобразование:

 config.array = karate.toJava(config.array);
 

Если это не сработает, это может быть ошибка в каратэ, которую вы можете исправить.

Комментарии:

1. Спасибо, Питер. Это сработало, хотя формат не такой, как у нас в JSON.