如果这是重复的帖子,请道歉。我试图根据指定的条件在以下数组响应中找到一个字符串。
{
"MRData": {
"xmlns": "http://ergast.com/mrd/1.4",
"series": "f1",
"url": "http://ergast.com/api/f1/2016/drivers.json",
"limit": "30",
"offset": "0",
"total": "24",
"DriverTable": {
"season": "2016",
"Drivers": [
{
"driverId": "alonso",
"permanentNumber": "14",
"code": "ALO",
"url": "http://en.wikipedia.org/wiki/Fernando_Alonso",
"givenName": "Fernando",
"familyName": "Alonso",
"dateOfBirth": "1981-07-29",
"nationality": "Spanish"
},
{
"driverId": "bottas",
"permanentNumber": "77",
"code": "BOT",
"url": "http://en.wikipedia.org/wiki/Valtteri_Bottas",
"givenName": "Valtteri",
"familyName": "Bottas",
"dateOfBirth": "1989-08-28",
"nationality": "Finnish"
},
{
"driverId": "button",
"permanentNumber": "22",
"code": "BUT",
"url": "http://en.wikipedia.org/wiki/Jenson_Button",
"givenName": "Jenson",
"familyName": "Button",
"dateOfBirth": "1980-01-19",
"nationality": "British"
}
]
}
}
}
1)我想找到driverId“alonso”的永久号码,假设它并不总是在每个请求中首先出现。即每次发出请求时阵列重新洗牌。这里的逻辑是获取driverId alonso的数组计数并将其插入到下面的查询中
“MRData.DriverTable.Drivers [在这里插入alonso的数组计数] .permanentNumber”
2)我想获得小于20的永久号码。我还想得到永久号码小于20的司机的驱动程序。
非常感谢观看!
答案 0 :(得分:0)
尝试构建类" MRData"和"司机"包含所有必要参数。
让org.json或GSON发挥魔力。你应该真正关注Lars提到的How to parse JSON in Java。
答案 1 :(得分:0)
class MovieShow extends Component{
constructor(props){
super(props);
}
renderUsers(){
...
}
render(){
return(
...
<HasRole requireRole={["admin"]}>
{() => {return this.renderUsers()}}
</HasRole>
}
}
如果我能用更好的方式写这个,请告诉我。 非常感谢!
答案 2 :(得分:0)
将数据编组到POJO中,并检查那里的字段值,或使用类似[JSONPath] [1]的内容。
int permanentNumber = JSONPath.read(json, "$..Drivers[?(@.driverId == 'alonso')].permanentNumber");
免责声明,我目前没有运行此环境的环境,但他们的文档相当不错。