2016-10-01 51 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(); 
       } 
相關問題