2014-01-13 80 views
0

我一直在尋找這個創建JSON和輸出如何創建多個JSON陣列

{ 「時代」:100, 「名」: 「mkyong.com」, 「消息」:」 MSG 1" , 「MSG 2」, 「MSG 3」] }

但我想的10倍這樣

{ 
     "engine": "Trident", 
     "browser": "Internet Explorer 4.0", 
     "platform": "Win 95+", 

    }, 
    { 
     "engine": "Trident", 
     "browser": "Internet Explorer 5.0", 
     "platform": "Win 95+", 

    }, 
    { 
     "engine": "Trident", 
     "browser": "Internet Explorer 5.5", 
     "platform": "Win 95+", 

    }, 

和陣列,這是我試圖

0的方式

但這隻能打印1 JSON

{ 
     "engine": "Trident", 
     "browser": "Internet Explorer 4.0", 
     "platform": "Win 95+", 

    } 
+0

你想要一個JSON數組,但你用的是'JSONObject' ... –

+0

@SotiriosDelimanolis感謝reply.How創造10倍,如例子 – Deepak

+0

@Deepak如建議:創建'JSONArray'並添加到它你想要的東西 –

回答

1

,你可以這樣做:

JSONObject jsonObject = new JSONObject(); 
JSONArray array = new JSONArray(); 
for(int i=0;i<10;i++){ 
    JSONObject obj = new JSONObject(); 
    obj.put("engine", "mkyong.com"); 
    obj.put("browser", i); 
    obj.put("platform", i); 

    //if you are using JSON.simple do this 
    array.add(obj); 

    //and if you use json-jena 
    array.put(obj); 
} 
jsonObject.put("MyArray" , array); 

System.out.print(jsonObject); 
+0

'JSONArray'沒有'put'方法。 –

+0

檢查此[鏈接](http://www.json.org/javadoc/index.html?org/json/JSONArray.html),你會發現'put'方法。 –

+0

這是錯誤的庫。 OP正在使用'org.json.simple'。 –

0

在下面的代碼

JSONObject obj=null; 
obj = new JSONObject(); 
for(int i=0;i<10;i++) 
{ 

    obj.put("engine", "mkyong.com"); 
    obj.put("browser", i); 
    obj.put("platform", i); 

    //obj.put("messages", list); 
} 

要創建一個JSONObject和覆蓋其值的10倍。

當你想要一個JSON數組時,你爲什麼要使用JSONObject

創建一個JSONArray並添加10個JSONObject對象。

+0

謝謝你的回答。但我不明白你。你能舉個例子嗎? – Deepak

+0

@Deepak你不瞭解什麼?如果你不明白你在做什麼,一個例子就不會有幫助。 –

+0

@Deepak好東西。我建議你閱讀JSON支持的[不同數據類型](http://www.json.org/)。 –