无法构建此复杂JSON结构

时间:2014-06-09 12:00:59

标签: java 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结构?

我尝试了不同的东西,但我没有成功,我面临的问题是我得到的瓶装阵列也充满了相同的锡阵列物品。

2 个答案:

答案 0 :(得分:2)

为了让你知道如果你这样做就会产生邪恶的憎恶:这里是你必须创建的数据结构来捕获你建议的JSON。

Map<String, Map<String, List<Map<String, List<Map<String, String>>>>>> items;

所以,随意实现这一点,但如果是我,我会建立一个数据模型,然后将其映射到杰克逊。

答案 1 :(得分:0)

有些图书馆可以为您GSONJackson

执行此操作