Android java.lang.NullPointerException无法填充listview

时间:2014-04-17 17:11:49

标签: java android json eclipse listview

我试图用json中的一些数据填充listview。

以下是我遇到的错误:

04-17 12:54:25.573: E/JSON Parser(1169): Error parsing data org.json.JSONException:
of type org.json.JSONArray cannot be converted to JSONObject
04-17 12:54:26.223: E/AndroidRuntime(1169): FATAL EXCEPTION: main
04-17 12:54:26.223: E/AndroidRuntime(1169): Process: com.example.mysqltest, PID: 1169
04-17 12:54:26.223: E/AndroidRuntime(1169): java.lang.NullPointerException
04-17 12:54:26.223: E/AndroidRuntime(1169): at com.example.mysqltest.PropertyView$JSONParseP.onPostExecute(PropertyView.java:95)
04-17 12:54:26.223: E/AndroidRuntime(1169):     at com.example.mysqltest.PropertyView$JSONParseP.onPostExecute(PropertyView.java:1)
04-17 12:54:26.223: E/AndroidRuntime(1169):     at android.os.AsyncTask.finish(AsyncTask.java:632)
04-17 12:54:26.223: E/AndroidRuntime(1169):     at android.os.AsyncTask.access$600(AsyncTask.java:177)
04-17 12:54:26.223: E/AndroidRuntime(1169):     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
04-17 12:54:26.223: E/AndroidRuntime(1169):     at android.os.Handler.dispatchMessage(Handler.java:102)
04-17 12:54:26.223: E/AndroidRuntime(1169):     at android.os.Looper.loop(Looper.java:136)
04-17 12:54:26.223: E/AndroidRuntime(1169):     at android.app.ActivityThread.main(ActivityThread.java:5017)
04-17 12:54:26.223: E/AndroidRuntime(1169):     at java.lang.reflect.Method.invokeNative(Native Method)
04-17 12:54:26.223: E/AndroidRuntime(1169):     at java.lang.reflect.Method.invoke(Method.java:515)
04-17 12:54:26.223: E/AndroidRuntime(1169):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
04-17 12:54:26.223: E/AndroidRuntime(1169):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-17 12:54:26.223: E/AndroidRuntime(1169):     at dalvik.system.NativeStart.main(Native Method)

这是我的Java文件......

  JSONArray array = null


      public void onClick(View view) 
             new JSONParseP().execute()

    private class JSONParseP extends AsyncTask<String, String, JSONObject>

        protected JSONObject doInBackground(String... args)
        JSONParserP jParser = new JSONParserP();
        // Getting JSON from URL
        JSONObject json = jParser.getJSONFromUrlP(url);
        return json;

         protected void onPostExecute(JSONObject json) 
         pDialog.dismiss();
         try {
            // Getting JSON Array from URL
             array = json.getJSONArray(null);
            for(int i = 0; i < array.length(); i++){
            JSONObject c = array.getJSONObject(i);

任何帮助我都会非常感激。

感谢。

1 个答案:

答案 0 :(得分:1)

尝试将JSONObject c = array.getJSONObject(i);更改为JSONArray c = array.getJSONArray(i);