Мне нужно взять данные из json-файла, который имеет странную структуру, и я не могу найти решение для него. Я использую restAssured с jsonPath и когда я пытаюсь получить данные для конкретной недели, как этогоRestAssured JsonPath: проблема с получением данных от json
getJsonPath().getList("years.2017.weeks.find{it.isoWeekNum == '1'}")
я получаю ошибку
Invalid JSON expression: Script1.groovy: 1: unexpected token: 2017 @ line 1, column 33.
years.2017.weeks.find{it.isoWeekNum == '1'}
В то же время я могу получить данные с этим выражением
getJsonPath().getList("years.2017.weeks")
, который возвращает мне весь список недель.
Единственный способ, который я нашел, чтобы получить то, что мне нужно, как этот
getJsonPath().getList("years[1]['2017'].weeks.find{it.isoWeekNum == '1'}")
Но это не то, что я ищу. Мне нужно найти решение, где я могу получить данные без лет [1] на 2017 год и годы [0] для 2016
"{
"years": [
{
"2016": {
"currentIsoWeek": "49",
"currentTourWeek": "49",
"weeks": [
{
"isoWeekNum": "1",
"tourWeekNum": "1",
"categories": []
},
{
"isoWeekNum": "2",
"tourWeekNum": "2",
"categories": []
}
]
}
},
{
"2017": {
"currentIsoWeek": "",
"currentTourWeek": "",
"weeks": [
{
"isoWeekNum": "1",
"tourWeekNum": "1",
"categories": []
},
{
"isoWeekNum": "2",
"tourWeekNum": "2",
"categories": []
}
]
}
}
]
}
Большое спасибо, что я долгое время занимался этой проблемой, и, наконец, я получил решение. – Roman