Java JSON创建

Java JSON创建,java,json,Java,Json,我有下面的JSON { "display": { "icon": { "item": "minecraft:elytra" }, "title": "Learn to Fly" }, "parent": "minecraft:story/enter_end_gateway", "criteria": { "

我有下面的JSON

{
        "display": {
            "icon": {
                "item": "minecraft:elytra"
            },
            "title": "Learn to Fly"
        },
        "parent": "minecraft:story/enter_end_gateway",
        "criteria": {
            "elytra": {
                "trigger": "minecraft:inventory_changed",
                "conditions": {
                    "items": [
                        {
                            "item": "minecraft:elytra",
                            "data": 1
                        }
                    ]
                }
            }
        }
    }
我怎样才能在Java中创建它

以及能够获得每个元素,如标题


谢谢

从谷歌上查看这个库,它很容易使用,并且有很多API可以与JSON一起使用

而不是像这样愚蠢地创建代码

JSONObject jsonObject=new JSONObject();
JSONObject jsonObject2=new JSONObject();
JSONObject jsonObject3=new JSONObject();

jsonObject.put("display",jsonObject3);

您可以使用非常简单的方法创建json对象,而无需在代码上浪费时间。为每个新的json对象创建一个类,并在它们之间建立关系。

您询问的过程称为解组(将json/XML/其他格式的序列化对象解析为对象,以便在面向对象的上下文中使用)

我建议你看一看。它是一个流行的库,在Spring(MVC模块)等著名框架中使用。 创建域对象后,您可以将
jsonData
转换为
DomainClass
类的
实例

DomainClass instance = new ObjectMapper().readValue(jsonData, DomainClass.class);
jsonData
源可以是
文件
s、
输入流
s、
字节
数组、
字符串
s和。这取决于你选择最方便的方式来获取数据

以及能够获得每个元素,如标题


当实例准备就绪时,您可以通过访问器(即
get
方法)自由获取元素(现在是字段)。

以下是使用java中的org.json库构建json的代码:

import org.json.JSONArray;
import org.json.JSONObject;

public class JSONBuilderMinecraft {

    public static void main(String args[]) throws Exception{

        JSONObject mainJson = new JSONObject();



        //inner most json array
        JSONArray itemarray=new JSONArray();

        //inner most json
        JSONObject itemsJson= new JSONObject();
        itemsJson.put("item", "minecraft:elytra");
        itemsJson.put("data", 1);
        itemarray.put(itemsJson);

        JSONObject conditions = new JSONObject();
        conditions.put("items", itemarray);


        JSONObject elytra = new JSONObject();
        elytra.put("trigger", "minecraft:inventory_changed");
        elytra.put("conditions", conditions);


        mainJson.put("criteria", elytra);
        mainJson.put("parent", "minecraft:story/enter_end_gateway");

        JSONObject icon = new JSONObject();
        icon.put("item", "minecraft:elytra");

        JSONObject display = new JSONObject();
        display.put("title", "Learn to Fly");
        display.put("icon", icon);

        mainJson.put("display", display);

        System.out.println(mainJson.toString());

    }


}

试试这个,效果很好:

    public static void main(String[] args) throws JSONException {
        String jsonString = "{\n"
                + "        \"display\": {\n"
                + "            \"icon\": {\n"
                + "                \"item\": \"minecraft:elytra\"\n"
                + "            },\n"
                + "            \"title\": \"Learn to Fly\"\n"
                + "        },\n"
                + "        \"parent\": \"minecraft:story/enter_end_gateway\",\n"
                + "        \"criteria\": {\n"
                + "            \"elytra\": {\n"
                + "                \"trigger\": \"minecraft:inventory_changed\",\n"
                + "                \"conditions\": {\n"
                + "                    \"items\": [\n"
                + "                        {\n"
                + "                            \"item\": \"minecraft:elytra\",\n"
                + "                            \"data\": 1\n"
                + "                        }\n"
                + "                    ]\n"
                + "                }\n"
                + "            }\n"
                + "        }\n"
                + "    }";

        JSONObject object = new JSONObject(jsonString);
        JSONObject disp = object.getJSONObject("display");
        String title = disp.getString("title");

        System.out.println("title is " + title);
    }

你想解析这个JSON吗?不,我想自己用不同的值来创建它(对于Minecraft.JSON)。我想知道如何创建每个元素(即使您使用了自己的示例),如果您想要创建一个Java POJO,那么使用这个可以帮助您创建表示JSONPOJO的类。谢谢!GSON在插口罐内(由minecraft提供)。你能给我一些GSON的例子吗?谢谢!如前所述above@Chazmondo,查看github上的文档:问题是创建json,而不是像上面的代码那样构建数据后检索数据。是的,没错,我认为他可以像我的代码一样使用字符串格式的json谢谢!我接受了这个答案!这是一个硬编码的解决方案,很难维护和读取,不是吗?是的,这只是一个开始。当然,您将发送动态值来替换硬编码值。我也推荐gson库。我已经用动态值对它进行了排序,这样,我会怎样做才能有像“criteria”:{“elytra”:{(在这个库中有项目)