我有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);
但我还有另一个微调器,用于该地区。
如果我可以解析区域,我想微调区域将是毫无疑问的。 谢谢。
答案 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)
现在您可以将其用于您的用途。