2016-04-12 39 views
1

我想從對象打印這樣的:如何打印對象數組中的JAVA

{"data":[["Tiger Nixon","System 
    Architect","Edinburgh","5421","2011\/04\/25","$320,800"],["Garrett  
    Winters","Accountant","Tokyo","8422","2011\/07\/25","$170,750"]]} 

我在Java中嘗試這樣的:

ArrayList<String> list = new ArrayList<String>(); 
list.add("Tiger Nixon"); 
list.add("System Architect"); 
list.add("Edinburgh"); 
list.add("2011\/04\/25"); 
list.add("$320,800"); 
JSONArray stateArray = JSONFactoryUtil.createJSONArray(); 
JSONObject stateObject; 

stateObject = JSONFactoryUtil.createJSONObject(); 
stateObject.put("data", list); // i got an error in here 

stateArray.put(stateObject); 
System.out.println(stateArray); 

但是,我不知道如何實現這樣的對象。 有人可以幫助我嗎?

+0

你需要寫一個自定義序列化程序..你試過什麼?請添加 –

+0

@JoeyCiechanowicz我試圖使用JSONArray和JSONObject,它不工作。 –

+0

「我在這裏得到一個錯誤」什麼錯誤? –

回答

0

注意: - 在這裏JSONObject類無論我用屬於org.json.simple罐只。我用這個類org.json.simple.JSONObject

你試過的是。您正在嘗試創建ArrayList<String>類型,不會得到預期的結果的一個JSONObject,因爲你的json陣列格式是這樣那樣的

[["","",""],["","",""],["","",""],["","",""]] // arraylist inside an arraylist. 

您的格式那樣的ArrayList內的ArrayList但你嘗試什麼用只有一個ArrayList

這是您的代碼。

ArrayList<String> list = new ArrayList<String>(); //only one arrayList. 
    list.add("Tiger Nixon"); // adding values to the list. 
    list.add("System Architect"); 
    list.add("Edinburgh"); 
    list.add("2011\/04\/25"); 
    list.add("$320,800"); 

代碼會給輸出這樣的..

[{"data":"["","",""]"}, {"data":"["","",""]"}, {"data":"["","",""]"}] 

試試這個代碼,而不是你的(以下僅僅是樣品使用,請嘗試操縱這個邏輯根據自己的需要)。這會給你預期的結果。

ArrayList<ArrayList<String>> final_arrObject = new ArrayList<ArrayList<String>(); 
ArrayList<String> list; 
for(int i=0; i<5; i++){ //demo to add 5 ArrayList<String> to an ArrayList<ArrayList<String>>. 
    list = new ArrayList<String>(); //only one arrayList. 

    //at each iteration you may change you ArrayList Values. 
    list.add("Tiger Nixon"); // adding values to the list. 
    list.add("System Architect"); 
    list.add("Edinburgh"); 
    list.add("2011\/04\/25"); 
    list.add("$320,800"); 
    final_arrObject.add(list); 
} 

JSONObject obj_finalJSON= new JSONObject(); 
obj_finalJSON.put("data", final_arrObject); 
System.out.println(obj_finalJSON.toString()); //it will print your json as a String. 
+0

非常感謝,這是工作。 –

0

你可以實現你的目標是這樣的:

JSONArray stateArray = JSONFactoryUtil.createJSONArray(); 
stateArray.put("Tiger Nixon"); 
stateArray.put("System Architect"); 
stateArray.put("Edinburgh"); 
stateArray.put("2011\/04\/25"); 
stateArray.put("$320,800"); 

JSONObject stateObject; 
stateObject = JSONFactoryUtil.createJSONObject(); 
stateObject.put("data", stateArray); 
System.out.println(stateObject.toString()); 
0
ArrayList <String> list = new ArrayList <String>(); 
list.add("Tiger Nixon"); 
list.add("System Architect"); 
JSONArray array = new JSONArray(); 
for (int i = 0; i < list.size(); i++) { 
     array.put(list.get(i)); 
} 
JSONObject object = new JSONObject(); 
try { 
    obj.put("data", array); 
} catch (JSONException e) { 
e.printStackTrace(); 
} 
-2

有一個模型,它的一些特性。 您可以新建一些模型信息,並將其添加到列表中。 然後把這個列表放到JSON中,並打印出來json.toString()。 如果你想要特定的代碼,發送消息給我!

+2

如果你有特定的代碼,你應該發佈它。沒有人會發送消息給你。 –

+0

謝謝。接下來我會做。 – qinghuazangshui