我有一个像这样的Json数组
String carJson =" [{\" brand \" :\" Mercedes \",\" door \" :5},{\"品牌\" :\" Mercedes \",\" door \" :5}]&#34 ;;
到目前为止我已经完成了这个
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数组?以及如何使用键检索元素?
答案 0 :(得分:0)
首先,您的源Json不正确。
内部arrays
应更改为objects
,因为arrays
不是key
和value
结构,因为这些内部{{1}应该映射到objects
个对象。
所以改变你的Car
字符串:
json
然后使用以下代码将这些内部对象映射到Java中的String carJson = "[{ \"brand\" : \"Mercedes\", \"doors\" : 5 }, { \"brand\" : \"Mercedes\", \"doors\" : 5 }]";
个对象:
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
答案 1 :(得分:0)
修复你的json:
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;
}
}
然后你可以这样做:
String carJson ="[{ \"brand\" : \"Mercedes\", \"doors\" : 5 }, { \"brand\" : \"Mercedes\", \"doors\" : 5 }]";