Успешно сохранено в списке массивов
Я хочу выполнить итерацию по списку местоположений и получить его тип страны, тип и текст велосипеда bikeList.
{
"addedToList": {
"locationList": [
{
"countryType": "US"
"LineList": [
{
"Text": "thequickbrownfoxjumps over the lazy dog"
}
]
}
],
"bikeList": [
{
"BikeType": "road"
"LineList": [
{
"Text": "text"
}
]
}
]
},
"addedLine": "2"
}
используйте JSON [https://goessner.net/articles/JsonPath/][селектор запросов] $..locationList[?(@.countryType)].countryType
для фильтрации всех типов стран в выбранном объекте
Если хотите с чистой робототехникой, вы можете проверить robotframework-jsonlibrary
Пример робота для доступа к стране вашего json-файла:
*** Settings ***
Library JSONLibrary
Library Collections
*** Test Cases ***
Test For Json
${json_obj} = Load JSON From File example.json
${countries} = Get Value From Json ${json_obj} $..countryType
@{countries} = Convert To List ${countries}
FOR ${country} IN @{countries}
Log To Console ${country}
END
И более того, если вы знакомы с расширением ключевых слов робота с помощью python, вы также можете написать свои собственные ключевые слова с помощью python.
Вы также можете сделать это без JSONLibrary, просто используя json.loads через Evaluate
Ключевое слово
*** Variables ***
${MY_JSON} {"addedToList":{"locationList":[{"countryType":"US","LineList":[{"Text":"thequickbrownfoxjumps over the lazy dog"}]}],"bikeList":[{"BikeType":"road","LineList":[{"Text":"text"}]}]},"addedLine":"2"}
*** Test Cases ***
Test For Json
${json} Evaluate json.loads('''${MY_JSON}''') json
FOR ${loc_list} IN @{json['addedToList']['locationList']}
Log countryType: ${loc_list["countryType"]} console=True
END
FOR ${bike_list} IN @{json['addedToList']['bikeList']}
Log BikeType: ${bike_list["BikeType"]} console=True
END
Бро, как я могу проверить это?
Спасибо, что используете путь json для его получения. это тоже полезно.