我需要在java中创建json对象。我该怎么办?

时间:2016-10-01 12:51:43

标签: java android json

[{
    id: 12345,      //Id given by android app
    name: Name,     
    status: {
        yes: [N1, n2, n3],  
        no: [n1, n2 ,n3]  
    }
}]

我将如何在java中为此编写json对象?

我的尝试:

JSONObject object=new JSONObject();
JSONArray jsonarray=new JSONArray();
try {
    object.put("id",12345);
    object.put("name",Name);
    jsonarray.put("yes");
    jsonarray.put("no");
} catch (JSONException js) {
    js.printStackTrace();
}

我认为问题出在jsonarray上。我需要再次写入jsonarray对象。但我无法弄清楚我将如何做到这一点。

修改

这个问题不重复。

@ShaishavJogani我不认为这个问题与您提供链接的问题是重复的,因为这个问题是关于生成JSON,这是关于解析JSON。

2 个答案:

答案 0 :(得分:2)

status也是JSONObjectyesnoJSONObject类型JSONArray的属性,主要对象是在JSONArray,所以我会这样做:

JSONObject object = new JSONObject();
object.put("id", 12345);
object.put("name", "Name");
JSONObject status = new JSONObject();
object.put("status", status);
status.put("yes", new JSONArray(Arrays.asList("N1", "n2", "n3")));
status.put("no", new JSONArray(Arrays.asList("n1", "n2", "n3")));

JSONArray array = new JSONArray(Collections.singletonList(object));
System.out.println(array);

<强>输出:

[{"name":"Name","id":12345,"status":{"no":["n1","n2","n3"],"yes":["N1","n2","n3"]}}]

答案 1 :(得分:0)

我希望在数组之前会有一个JSONObject或者可能是数组的某个名称:如果这个数组包含在JSONObject中,请尝试下面的代码:

try {    
               JSONObject object=new JSONObject();
               JSONArray jsonarray=object.getJSONArray();
                if(jsonarray.length()>0)
                {
                for(int i=0; i<jsonarray.length();i++)
                {

                    object.put("id",12345);
                    object.put("name",Name);
                    jsonarray.put("yes");
                    jsonarray.put("no);
                }
              }
         }

         catch (Exception e) {
            e.printStackTrace();
          }

否则:

try {    

                   JSONArray jsonarray=new JSONArray("Name of Array");
                    if(jsonarray.length()>0)
                    {
                    for(int i=0; i<jsonarray.length();i++)
                    {

                        object.put("id",12345);
                        object.put("name",Name);
                        jsonarray.put("yes");
                        jsonarray.put("no);
                    }
                  }
             }

             catch (Exception e) {
                e.printStackTrace();
              }