我正在尝试在我的Android应用程序中实现一个通用的jsonparser类,可以在整个应用程序中重用。到目前为止,我发现了一个简单的在线实现,但当我在我的JSONArray响应中调用它时,我无法传入我的类和ArrayList对象,因为它给出了如下所示的以下错误。 jsonParser的代码和我调用它的代码如下所示。我希望有人告诉我我错在哪里或者其他方面实施它...有一些资源。谢谢你的进步。
错误:
Error:(111, 69) error: method jsonParser in class JSONParser3 cannot be applied to given types;
required: JSONArray,Class,ArrayList<Class>
found: JSONArray,Class<Countries>,List<Countries>
reason: actual argument List<Countries> cannot be converted to ArrayList<Class> by method
invocation conversion
国家模型:
public class Countries {
private String name;
private String dialCode;
private String code;
public Countries(){
this("","","");
}
public Countries(String name, String dialCode, String code) {
this.name = name;
this.dialCode = dialCode;
this.code = code;
}
public String getCountryName() {
return name;
}
public void setCountryName(String name) {
this.name = name;
}
public String getDialCode() {
return dialCode;
}
public void setDialCode(String dialCode) {
this.dialCode = dialCode;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
JSONArray回复:
public void onResponse(JSONArray jsonArray) {
Countries countries = new Countries();
countriesList = JSONParser3.jsonParser(jsonArray, Countries, countriesList)
}
JSONParser代码:
public class JSONParser3 {
public static List jsonParser(JSONArray jsonArray, Class myClass, ArrayList<Class> data){
Gson gson = new Gson();
JSONArray json = jsonArray;
try{
for (int i = 0; i < json.length(); i++){
data.add(gson.fromJson(json.getString(i), myClass.getClass()));
}
}catch (JSONException e){
e.printStackTrace();
}
return data;
}
}