0

I was able to create JSON Array in java with code below

JSONObject cust1 = new JSONObject();
    try {
        cust1.put("number", "1");
        cust1.put("name", "customer1");
        cust1.put("url", "url1");

    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    JSONObject cust2 = new JSONObject();
    try {
        cust2.put("number", "2");
        cust2.put("name", "customer3");
        cust2.put("url", "url3");

    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    JSONObject cust3 = new JSONObject();
    try {
        cust3.put("number", "3");
        cust3.put("name", "customer3");
        cust3.put("url", "url3");

    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    JSONObject cust4 = new JSONObject();
    try {
        cust4.put("number", "4");
        cust4.put("name", "customer4");
        cust4.put("url", "url4");

    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    JSONObject cust5 = new JSONObject();
    try {
        cust5.put("number", "5");
        cust5.put("name", "customer5");
        cust5.put("url", "url5");

    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    JSONArray jsonArray = new JSONArray();

    jsonArray.put(cust1);
    jsonArray.put(cust2);
    jsonArray.put(cust3);
    jsonArray.put(cust4);
    jsonArray.put(cust5);

    String jsonStr = jsonArray.toString();

    System.out.println(jsonStr);

Output JSON

[{"number":"1","name":"customer1","url":"url1"},{"number":"2","name":"customer2","url":"url2"},{"number":"3","name":"customer3","url":"url3"},{"number":"4","name":"customer4","url":"url4"},{"number":"5","name":"customer5","url":"url5"}]

How to create with loop in effective code because I have 20 customer? I mean that's just change one number at last character.

Solved thanks Android.K.Doe and Randyka Yudhistira

int data = 20;
    JSONArray obj = new JSONArray();
    try {
        for(int i=1;i<=data;i++){
            // 1st object

            JSONObject cust= new JSONObject();
            cust.put("number",String.valueOf(i));
            cust.put("name","customer"+i);
            cust.put("url","url"+i);

            obj.put(cust);
        }
    } catch (JSONException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

2 Answers 2

2
JSONArray jsa = new JSONArray();
for (int i = 1; i<= 20; i++) {
  JSONObject cust = new JSONObject();
  cust.put("number",String.valueOf(i));
  cust.put("name","customer"+i);
  cust.put("url","url"+i);
  jsa.put(cust);
}
System.out.println(jsa.toString());
Sign up to request clarification or add additional context in comments.

Comments

1

Create an object for customer then add on the list. Then try this.

ArrayList<Customer> list = new ArrayList()<>;
JSONArray jArray = new JSONArray();
for(int i = 0; i < count; count++){
  try {
    JSONObject cust = new JSONObject();
    cust.put("number", list.get(i).number);
    cust.put("name", list.get(i).name);
    cust.put("url", list.get(i).url);

    jArray.put("Cust"+i, cust);

  } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  }
}

2 Comments

[Solved] thanks Android.K.Doe, I am modified your code without arraylist and add int count variable
Thats just a sample. Its for dynamic code. Data should come from the api. Anyway no problem. Please accept the answer if its correct for others who have same problem :)

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.