簡體   English   中英

在Spring MVC中使用Gson將嵌套的Json數組轉換為Java數組

[英]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是不是一個keyvalue的結構,並且因為這些內部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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM