2014-06-09 136 views
0

我有一個代表以下數據的相互關聯的Maps。無法構建複雜的JSON結構

{ 

     "Soft Drinks": { 
      "Tin": [ 
       { 
        "Lean Apple": [ 
         { 
          "name": "1 Litre" 
         }, 
         { 
          "name": "2 Litre" 
         } 
        ] 
       }, 
       { 
        "Clear": [ 
         { 
          "name": "7 Litre" 
         }, 
         { 
          "name": "10 Litre" 
         } 
        ] 
       } 
      ], 
      "Bottled": [ 

      ] 
     } 
    } 

這是表示在Java代碼

封裝測試形式以上JSON數據我的代碼;

import java.util.LinkedHashMap; 
import java.util.LinkedList; 
import java.util.Map; 

import org.json.JSONException; 
import org.json.JSONObject; 

public class Post { 

    public static void main(String args[]) throws JSONException 
    { 
     LinkedList<String> forTinItemsList = new LinkedList<String>(); 
     LinkedList<String> forBottleItemsList = new LinkedList<String>(); 

     JSONObject jsonobj = new JSONObject(); 

     Map<String,LinkedList<String>> categoryitemsMap = new LinkedHashMap<String,LinkedList<String>>(); 

     forTinItemsList.add("Lean Apple"); 
     forTinItemsList.add("Clear"); 


     forBottleItemsList.add("Lemon"); 
     forBottleItemsList.add("Clear"); 



     categoryitemsMap.put("Tin", forTinItemsList); 
     categoryitemsMap.put("Bottled", forBottleItemsList); 

     // completion of Categories. 


     Map<String,LinkedList<String>> subcategory = new LinkedHashMap<String,LinkedList<String>>(); 

     LinkedList<String> forLemonItems = new LinkedList<String>(); 
     forLemonItems.add("1 Litre"); 
     forLemonItems.add("2 Litre"); 

     subcategory.put("Lemon", forLemonItems); 



     LinkedList<String> forClearItems = new LinkedList<String>(); 
     forClearItems.add("7 Litre"); 
     forClearItems.add("10 Litre"); 

     subcategory.put("Clear", forClearItems); 


     for (Map.Entry<String, LinkedList<String>> entry : categoryitemsMap.entrySet()) 
     { 
      String key = entry.getKey(); 

      LinkedList<String> list = entry.getValue(); 

      for(String value : list) 
      { 
       System.out.println(key+"\t"+value); 
      } 

      //jsonobj.put(entry, arg1); 

     } 


    } 

} 

有沒有人請告訴我如何建立上述JSON結構?

我正在嘗試不同的事情米,但我不成功,我面臨的問題是,我得到的瓶裝陣列也填寫了相同的錫陣列項目。

+0

您的代碼段顯示瓶裝爲空 – NimChimpsky

+0

用於減少代碼,我有意將瓶裝數據保留爲空。 – Kiran

+0

它不符合你的java代碼,你似乎試圖在java中實現的strcuture是不同於json – NimChimpsky

回答

0

有庫,爲您GSONJackson

+0

這似乎更多的評論.. –

+0

我正在使用org.json。 – Kiran

+0

GSON和傑克遜有一個更開發的api,它比plain ol json更容易使用 – NimChimpsky

2

這樣做是爲了讓你的邪惡可憎的事的想法,如果你這樣做了,將變成:這裏,你將不得不創建捕獲的數據結構你提出的JSON。因此,隨意實現這一點,但如果是我,我會建立一個數據模型,然後將其與傑克遜映射。