получить доступ к вложенному объекту JSON со случайным или неизвестным именем в рамках каратэ - PullRequest
0 голосов
/ 25 октября 2018

У меня есть этот фрагмент ответа JSON

"A": {
"RandomName01": {
    "B": "BOS",
    "C": {
        "RandomName02": {
            "D": "32",
            "E": "ABC",
            "F": "DEF"
        }
    },
    "G": "GHI"
}

Мне нужно извлечь из него значение D, имея в пути два тега RandomName.Я не могу найти ничего в документации, связанной с обработкой неизвестных имен.Я пытался использовать [], *, [0], .. и т. Д., Но мне это не удалось.

Например:

  • def value = response.A..C..D
  • значение по умолчанию = ответ [0] .C [0] .D

и т. Д. *

Спасибо,

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Спасибо за помощь.Ваш ответ заставил меня попробовать jsonPath в каратэ

Это сделало трюк:

* def value = karate.jsonPath(response, "$..D")

Чтобы попробовать jsonPath, я использовал: http://jsonpath.com/

Для выражений jsonPath, которые я использовал: https://goessner.net/articles/JsonPath/index.html#e2

Спасибо:)

0 голосов
/ 25 октября 2018

Это должно работать,

* def value = response..["D"]

Вы можете выполнить глубокое сканирование любой клавиши, используя .. оператор

Карате использует jsonpath для манипуляций с JSON.

Пожалуйста, обратитесь Операторы Json для получения более полезной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...