2016-10-01 60 views
-3
[{ 
    id: 12345,  //Id given by android app 
    name: Name,  
    status: { 
     yes: [N1, n2, n3], 
     no: [n1, n2 ,n3] 
    } 
}] 

我如何用Java编写此JSON对象?我需要在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。

+0

你的意思是你要分析上面的JSON? –

+0

执行代码时会发生什么?它是否编译?它是否打印错误信息?什么错误信息?请[编辑]您的问题以包含此信息。 –

+0

顺便说一句你发布的代码有一个语法错误:你忘了“之后”no“。这是你的实际代码吗?如果没有,请复制粘贴实际的代码。 –

回答

2

status也是JSONObjectyesnoJSONObjectJSONArray类型的,并且主要目的是在一个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

['JSONArray'(https://developer.android.com/reference/org/json/JSONArray.html)有一个'Collection'构造,所以可以缩短代码,例如'状态。 put(“是”,新的JSONArray(Arrays.asList(“N1”,“n2”,“n3”)))'。 – Andreas

+0

@安德烈亚斯好抓,让我修改答案 –

+0

请再读一遍。阵列。在检查开始.. @NicolasFilotto –

0

我前阵希望会有一个JSONObject或可能对数组的一些名称:TR如果这个数组来下面码Y在一个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(); 
       } 
相关问题