【问题标题】:Convert a Nested Json Array to Java Array Using Gson In Spring MVC在 Spring MVC 中使用 Gson 将嵌套的 Json 数组转换为 Java 数组
【发布时间】:2018-02-20 07:57:20
【问题描述】:

我有一个这样的 Json 数组

String carJson = "[{ \"brand\" : \"Mercedes\", \"doors\" : 5 }, { \"brand\" : \"Mercedes\", \"doors\" : 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 数组?以及如何使用键检索元素?

【问题讨论】:

标签: java json string gson


【解决方案1】:

首先你的源 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;
    }
}

【讨论】:

  • 你能写出类车吗???...你能告诉我如何检索数组元素吗??
  • 也在“汽车汽车 = gson.fromJson(carJson,Car[].class);”它给予“投...车上课”
【解决方案2】:

修复你的 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;
}

【讨论】:

  • 感谢您的回复。但是我在“Car cars[] = new Gson().fromJson(carJson, Car[].class);”中遇到错误它说cast..car to class
猜你喜欢
  • 1970-01-01
  • 2013-03-13
  • 2021-12-17
  • 2021-02-27
  • 2021-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-27
相关资源
最近更新 更多