如何在Android中使用循环数据创建JSON数组

时间:2016-09-08 01:12:42

标签: java android arrays json

我能够在java中使用代码

创建JSON数组
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);

输出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"}]

如何在有效代码中创建循环,因为我有20个客户?我的意思是,只是在最后一个角色改变一个数字。

解答感谢Android.K.Doe和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 个答案:

答案 0 :(得分:1)

为客户创建一个对象,然后在列表中添加。然后尝试一下。

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();
  }
}

答案 1 :(得分:1)

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());