如何在Spinner中解析JSON数组?

时间:2019-01-25 06:38:22

标签: android json spinner

我有json个文件需要解析,但是我不知道如何解析。

我的json文件是这样的:

[
  {"city":"Taipei", "area":["Songshan","Sinyi","Datong"]},
  {"city":"Kaohsiung", "area":["Yancheng","Gushan"]}
]

首先,我创建一个类:

 class AreaData{
   String cityName;
   ArrayList<String> areas;

   public AreaData(String cityName, ArrayList<String> areas){
      this.cityName = cityName;
      this.areas = areas;
   }

   public AreaData(JSONObject object) { //from mainActivity
       try {
             cityName = object.getString("city");
             areas = ????

在My mainActivity中,读取asset / zipcode.json中的JSON文件

 StringBuilder sb = new StringBuilder();
 parseJSON(sb.toString());

然后

private void parseJSON(String json)

try {
      JSONArray array = new JSONArray(json);
      for (int i = 0; i < array.length(); i++) {
        JSONObject object = array.getJSONObject(i);
        AreaData areas = new AreaData(object); //it's in class
        cityString[i] = areas.cityName;
     }

在微调器中

cityAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, cityString);

SpinnerCity.setAdapter(cityAdapter); 

但我还有另一个微调器,用于该地区。

如果我可以解析区域,我想微调区域将是毫无疑问的。 谢谢。

2 个答案:

答案 0 :(得分:0)

JSONArray array= new JSONArray(json);                                          
 for (int i = 0; i < array.length(); i++) {
   JSONObject jsonobject = array.getJSONObject(i);
 String name = jsonobject.getString("city");
 JSONArray participants = jsonObject.getJSONArray("area")
  for (int i = 0; i < participants.length(); i++) {
    yourArrayList.add(participants.getString(i))
  }

}

答案 1 :(得分:0)

首先导入该库

compile 'com.google.code.gson:gson:2.6.2'

然后根据您的回复使用以下模型

public class Example {

@SerializedName("city")
@Expose
private String city;
@SerializedName("area")
@Expose
private List<String> area = null;

public String getCity() {
return city;
}

public void setCity(String city) {
this.city = city;
}

public List<String> getArea() {
return area;
}

public void setArea(List<String> area) {
this.area = area;
}

}

然后将您的字符串响应转换为使用以下代码的模型

Example example = gson.fromJson(yourstringresponse, Example.class)

现在您可以将其用于您的用途。