Java JSON创建

时间:2017-05-14 10:37:26

标签: java json

我有以下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中创建它?

同时能够获得每个元素,例如标题。

谢谢!

5 个答案:

答案 0 :(得分:2)

从Google查看此库gson它易于使用,并且有很多API可以使用JSON

答案 1 :(得分:1)

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

我建议您查看Jackson。它是一个流行的库,用于诸如Spring(MVC模块)之类的众所周知的框架中。 创建域对象后,您可以将jsonData转换为instance类的DomainClass,如

DomainClass instance = new ObjectMapper().readValue(jsonData, DomainClass.class);

jsonData来源可以是FileInputStreambyte数组,Stringso on。您可以选择最方便的方式获取该数据。

  

同时能够获得每个元素,例如标题。

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

答案 2 :(得分:0)

而不是像这个愚蠢的想法那样创建你的代码

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

jsonObject.put("display",jsonObject3);

你可以使用Gson,这么简单就是创建json对象而不浪费你的代码时间为每个新的Json对象创建一个类并在它们之间建立关系。

答案 3 :(得分:0)

以下是在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());

    }


}

答案 4 :(得分:0)

试试这个,它运作正常:

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