سؤال

I have an android code like

JSONObject json = new JSONObject(result);

                JSONArray articles = json.getJSONArray("images");

                for(int i=0;i<json.getJSONArray("images").length();i++){

                image_first = (articles.getJSONObject(i).optString("image_first"));
                image_second = (articles.getJSONObject(i).optString("image_second"));
            }

to parse a JSON array. So now i want to store the results in to separate array like

image_first[i] = (articles.getJSONObject(i).optString("image_first"));
                image_second[i] = (articles.getJSONObject(i).optString("image_second"));

but it throws nullpointer exception when i do so what is the problem here any help would appreciated

json array

logcat

05-14 15:51:43.641: E/AndroidRuntime(740): FATAL EXCEPTION: main
05-14 15:51:43.641: E/AndroidRuntime(740): java.lang.NullPointerException
05-14 15:51:43.641: E/AndroidRuntime(740):  at com.kod.manju_app.MainActivity$HttpAsyncTask.onPostExecute(MainActivity.java:123)
05-14 15:51:43.641: E/AndroidRuntime(740):  at com.kod.manju_app.MainActivity$HttpAsyncTask.onPostExecute(MainActivity.java:1)
05-14 15:51:43.641: E/AndroidRuntime(740):  at android.os.AsyncTask.finish(AsyncTask.java:417)
05-14 15:51:43.641: E/AndroidRuntime(740):  at android.os.AsyncTask.access$300(AsyncTask.java:127)
05-14 15:51:43.641: E/AndroidRuntime(740):  at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
05-14 15:51:43.641: E/AndroidRuntime(740):  at android.os.Handler.dispatchMessage(Handler.java:99)
05-14 15:51:43.641: E/AndroidRuntime(740):  at android.os.Looper.loop(Looper.java:123)
05-14 15:51:43.641: E/AndroidRuntime(740):  at android.app.ActivityThread.main(ActivityThread.java:4627)
05-14 15:51:43.641: E/AndroidRuntime(740):  at java.lang.reflect.Method.invokeNative(Native Method)
05-14 15:51:43.641: E/AndroidRuntime(740):  at java.lang.reflect.Method.invoke(Method.java:521)
05-14 15:51:43.641: E/AndroidRuntime(740):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-14 15:51:43.641: E/AndroidRuntime(740):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-14 15:51:43.641: E/AndroidRuntime(740):  at dalvik.system.NativeStart.main(Native Method)
هل كانت مفيدة؟

المحلول

You have to initialize array before using it.. try following code with appropriate changes.

JSONObject json = new JSONObject(result);

      JSONArray articles = json.getJSONArray("images");
      JSONArray jsnarray=json.getJSONArray("images");
      image_first =new String[jsnarray.length()];  //initializtion
      image_second =new String[jsnarray.length()];

      for(int i=0;i<jsnarray.length();i++){

            image_first[i] = (articles.getJSONObject(i).optString("image_first"));
            image_second[i] = (articles.getJSONObject(i).optString("image_second"));
        }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top