Java 重新启动JsonPath:从json获取数据时出现问题
我需要从json文件中获取一个数据,这个文件的结构很奇怪,我找不到解决方案。我正在使用jsonPath的重新设置 当我试图获取像这样的一周的数据时Java 重新启动JsonPath:从json获取数据时出现问题,java,rest-assured,rest-assured-jsonpath,Java,Rest Assured,Rest Assured Jsonpath,我需要从json文件中获取一个数据,这个文件的结构很奇怪,我找不到解决方案。我正在使用jsonPath的重新设置 当我试图获取像这样的一周的数据时 getJsonPath().getList("years.2017.weeks.find{it.isoWeekNum == '1'}") 我犯了个错误 Invalid JSON expression: Script1.groovy: 1: unexpected token: 2017 @ line 1, column 33. years.2017
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(“年.2017.周”)
这让我想起了所有的星期
我找到的唯一能得到我需要的方法就是这样
getJsonPath().getList("years.2017.weeks.find{it.isoWeekNum == '1'}")
getJsonPath().getList(“年[1]['2017'].weeks.find{it.isoWeekNum=='1'}”)
但这不是我要找的。我需要找到一个解决方案,在那里我可以获得2017年[1]年和2016年[0]年的数据
"{
"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": []
}
]
}
}
]
}
希望以下代码正是您想要的:
public static void main(final String[] args) {
JsonPath jsonPath = new JsonPath(yourJson).using(new JsonPathConfig("UTF-8"));
System.out.println(
jsonPath.get("years['2017'].weeks*.find {it.isoWeekNum == '1'}")
);
}
非常感谢我在这个问题上花了很长时间,终于找到了解决办法。