Java 无法构建此复杂的JSON结构

Java 无法构建此复杂的JSON结构,java,json,Java,Json,我有一个相互关联的地图,表示以下数据 { "Soft Drinks": { "Tin": [ { "Lean Apple": [ { "name": "1 Litre" }, {

我有一个相互关联的地图,表示以下数据

{

        "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);

        }


    }

}
import java.util.LinkedHashMap;
导入java.util.LinkedList;
导入java.util.Map;
导入org.json.JSONException;
导入org.json.JSONObject;
公营职位{
公共静态void main(字符串args[])抛出JSONException
{
LinkedList FortiniteSList=新建LinkedList();
LinkedList ForBattleItemsList=新建LinkedList();
JSONObject jsonobj=新的JSONObject();
Map categoryitemsMap=新建LinkedHashMap();
添加(“瘦苹果”);
添加(“清除”);
对于瓶装商品列表,添加(“柠檬”);
对于瓶装项目列表,添加(“清除”);
类别项目名称(“锡”,forTinItemsList);
类别项目列表(“瓶装”,用于瓶装项目列表);
//完成分类。
Map subcategory=新建LinkedHashMap();
LinkedList forLemonItems=新LinkedList();
对于柠檬酸盐,添加(“1升”);
对于柠檬酸盐,添加(“2升”);
子类别。放置(“柠檬”,用于柠檬石);
LinkedList forClearItems=新建LinkedList();
对于ClearItems,添加(“7升”);
对于ClearItems,添加(“10升”);
子类别。放置(“清除”,用于清除项目);
对于(Map.Entry:categoryitemsMap.entrySet())
{
String key=entry.getKey();
LinkedList=entry.getValue();
for(字符串值:列表)
{
System.out.println(键+“\t”+值);
}
//jsonobj.put(条目,arg1);
}
}
}
谁能告诉我如何构建上述JSON结构


我尝试了不同的东西,但我没有成功,我所面临的问题是,我得到的瓶装数组也充满了相同的罐数组项。

有一些库可以为您这样做,并且

可以让您了解如果您这样做的话,不神圣的东西会变成什么:下面是您必须创建的数据结构,以捕获您需要的JSON提议

Map<String, Map<String, List<Map<String, List<Map<String, String>>>>>> items;
地图项目;

所以,请随意实现这一点,但如果是我,我会构建一个数据模型,然后与Jackson进行映射。

我正在使用org.json来实现这一点。GSON和Jackson有一个更成熟的api,使用它们比普通的ol jsonI可以改变库更容易,但是否有可能得到一个这样的工作示例。在过去的3个小时里,我一直在苦苦挣扎。你的代码片段显示瓶装的数据是空的。为了减少代码,我特意将瓶装的数据保持为空。它与你的java代码不匹配,您试图在java中实现的结构与在JSON中实现的结构不同,请您向我指出数据不匹配的地方??结构似乎不匹配。似乎
Tin
的值应该是以
Lean Apple
Clear
为键的对象。为什么要在这两者之间添加和额外的数组?