[英]Convert a Nested Json Array to Java Array Using Gson In Spring MVC
我有一個像這樣的Json數組
字符串carJson =“ [{\\” brand \\“:\\”梅賽德斯\\“,\\”門\\“:5},{\\” brand \\“:\\”梅賽德斯\\“,\\”門\\“:5}]” ;
到目前為止,我已經做到了
Car cars = gson.fromJson(carJson,Car[].class);
我的車課是
private static class Car {
private String brand = null;
private int doors = 0;
public String getBrand() { return this.brand; }
public void setBrand(String brand){ this.brand = brand;}
public int getDoors() { return this.doors; }
public void setDoors (int doors) { this.doors = doors; }
}
但是它不起作用。 如何將該字符串數組轉換為Java數組? 以及如何使用鍵檢索元素?
首先,您的來源Json不正確。
內部arrays
應改為objects
,因為arrays
是不是一個key
和value
的結構,並且因為這些內部objects
應該被映射到Car
對象。
因此,像這樣更改您的json
字符串:
String carJson = "[{ \"brand\" : \"Mercedes\", \"doors\" : 5 }, { \"brand\" : \"Mercedes\", \"doors\" : 5 }]";
然后,使用以下代碼將這些內部對象映射到Java中的Car
對象:
Car[] cars = gson.fromJson(carJson, Car[].class);
然后,要讀取汽車數組數據,可以使用:
for(int i=0; i<cars.length; i++){
Car c = cars[i];
System.out.println("Car "+ i +" is : Brand= "+ c.getBrand() + "and doors = "+c.getDoors());
}
這是應該如何定義Car
類:
public class Car {
private String brand;
private int doors;
//Constructors
public String getBrand(){
return this.brand;
}
public void setBrand(String b){
this.brand = b;
}
public String getDoors(){
return this.doors;
}
public void setDoors(int n){
this.doors= n;
}
}
修復您的json:
String carJson ="[{ \"brand\" : \"Mercedes\", \"doors\" : 5 }, { \"brand\" : \"Mercedes\", \"doors\" : 5 }]";
然后您可以執行以下操作:
Car cars[] = new Gson().fromJson(carJson, Car[].class);
class Car {
private String brand;
private int doors;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.