【发布时间】:2021-02-28 10:42:25
【问题描述】:
我有一个嵌套的 JSON,我想循环并根据键获取值。
Data.json
{
"car": [
{
"date": 1324599600000,
"values": [
{
"name": "Audi",
"price": "11212.12"
},
{
"name": "Bmw",
"price": "22321.3"
},
{
"name": "Cittroen",
"price": "23432.2"
},
{
"name": "Tuareg",
"price": "556456.3"
}
]
}
我基于 JSON 数据创建了 3 个对象模型。
CarResponse.java
public class CarResponse {
@JsonProperty(value = "car")
List<Car> cars;
//getters,setters
Car.java
public class Car{
@JsonProperty("values")
private List<CarValue> carValue;
//getters, setters
CarValue.java
public class CarValue {
private String name;
private BigDecimal price;
//getters, setters
DataParse.java
public class DataParse{
CarResponse response;
public CarValue parse(){
CarValue carValue = new CarValue();
//NEED HELP WITH THIS PART
for(Car cars : response.getQuote()){
for(CarValue qv : cars.getCarValue()){
String type = qv.get("name").asText();
Decimal value = qv.get("price").decimalValue();
carValue.setName(qv.getName());
carValue.setPrice(qv.getPrice());
}
}
return quoteValue;
}
}
在 JSON 中,我需要检查车名是否为 Audi,如果车名是 Tuareg,则保存并显示。
代码的嵌套for循环部分不起作用
for(Car cars : response.getQuote()){
for(CarValue qv : cars.getCarValue()){
String type = qv.get("name").asText();
Decimal value = qv.get("price").decimalValue();
carValue.setName(qv.getName());
carValue.setPrice(qv.getPrice());
}
}
仅将其作为我在此步骤中需要执行的操作的示例,即检查 JSON 中的密钥以及是否是该密钥,例如 name = Audi 然后
carValue.setName(qv.getName());
通过上面的代码,我在控制台中得到了这个。
carValue=[carValue{name=null, price=null}
【问题讨论】:
标签: java json spring-boot