我一直在玩弄一些JSON,嘗試獲取並顯示字符串以顯示在我的應用程序中使用Textviews的自定義ListView中。但是我在運行時遇到了NullPointerException。有人可以告訴我我犯了什麼錯誤,並指出我可能正確的方向。NullPointerException當檢索JSON數據
這是JSON:
[{"id":"1","client_id":"1","client_name":"Company A"},{"id":"2","client_id":"2","client_name":"Company B"}]
這是模型類:
public class Model {
private String client_name;
public String getClient_name() {
return client_name;
}
public void setClient_name(String client_name) {
this.client_name = client_name;
}
}
包裹類:
public class Wrap {
private ArrayList<Model> models;
public ArrayList<Model> getModels() {
return models;
}
public void setModels(ArrayList<Model> models) {
this.models = models;
}
}
這是我的適配器:
public class Adapter extends ArrayAdapter<Model> {
public Adapter(Context context, int resource) {
super(context, resource);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.listview_item, null);
viewHolder = new ViewHolder(convertView);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
final Model p = getItem(position);
viewHolder.textone.setText(p.getClient_name());
return convertView;
}
}
的ViewHolder:
public class ViewHolder {
public TextView textone;
public ViewHolder(View convertView)
{
textone = (TextView)convertView.findViewById(R.id.txt_field);
}
}
的網址:
private static final String SO_URL = "http://www.example.com/webservice/?value";
private static final String PARAMS = "[{\"table\":\"locations\",\"operation\":\"select\"}]";
這是的AsyncTask的doInBackground方法:
我得到這個異常信息:
Failed to parse JSON due to: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.bloomcore.dbnewapp.Wrap.getModels()' on a null object reference
在調用'wrap.getModels()'之前,你測試過'wrap'是否爲null嗎? – LarsH
是包裝爲空。 – kinsell
我看到你正在調用getModels而不調用setModels。 – Gi0rgi0s