1

I am creating a json array and obtain data from an arraylist. My problem is that when I save the data in my json it only saves the last data of the arraylist to each index.

This is my code:

 JSONArray ItemsRequiredobArr=new JSONArray();

            JSONObject ItemsRequiredob=new JSONObject();

            for(int ii=0;ii<StocklistAdapter.listItemN.size();ii++){


                ItemsRequiredob.put("ItemID",StocklistAdapter.itemIdN.get(ii));
                ItemsRequiredob.put("StockCode",StocklistAdapter.listItemN.get(ii));
                Toast.makeText(this, "StockCode"+StocklistAdapter.listItemN.get(ii), Toast.LENGTH_SHORT).show();
                ItemsRequiredob.put("Description",StocklistAdapter.listAddressN.get(ii));
                ItemsRequiredob.put("Quantity",StocklistAdapter.QuaN.get(ii));

                ItemsRequiredobArr.put(ItemsRequiredob);


                        /*Toast.makeText(mContext, "i"+i+" "+listAddressN.get(i), Toast.LENGTH_SHORT).show();*/
                    Log.e("d", ItemsRequiredob.get("ItemID").toString());


            }
            ob.put("ItemsRequired",ItemsRequiredobArr);

this is my array from above

[{"ItemsRequired":[{"ItemID":"3224","StockCode":"10030","Description":"Complete - 3 section mattress\r\n\r\nPolyeurethane velcro grips","Quantity":"0"},{"ItemID":"3224","StockCode":"10030","Description":"Complete - 3 section mattress\r\n\r\nPolyeurethane velcro grips","Quantity":"0"}]

As you can see both index have the same data but arraylist contains different data on index 0 and 1. Please help me out since I am a beginner.

2
  • 1
    Make ItemsRequiredob object inside the loop. You are overriding the same object all the times Commented Jul 6, 2017 at 11:51
  • you add same object into your list for multiple times. You have to create new JSONObject each time. Commented Jul 6, 2017 at 11:57

1 Answer 1

1

Your ItemsRequiredob object created one time and you are setting the value every time so it's talking the last item for every object, so Put ItemsRequiredob inside for loop like this, it will work fine

            for(int ii=0;ii<StocklistAdapter.listItemN.size();ii++){
JSONObject ItemsRequiredob=new JSONObject();

                ItemsRequiredob.put("ItemID",StocklistAdapter.itemIdN.get(ii));
                ItemsRequiredob.put("StockCode",StocklistAdapter.listItemN.get(ii));
                Toast.makeText(this, "StockCode"+StocklistAdapter.listItemN.get(ii), Toast.LENGTH_SHORT).show();
                ItemsRequiredob.put("Description",StocklistAdapter.listAddressN.get(ii));
                ItemsRequiredob.put("Quantity",StocklistAdapter.QuaN.get(ii));

                ItemsRequiredobArr.put(ItemsRequiredob);


                        /*Toast.makeText(mContext, "i"+i+" "+listAddressN.get(i), Toast.LENGTH_SHORT).show();*/
                    Log.e("d", ItemsRequiredob.get("ItemID").toString());


            }
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.