我有以下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中创建它?
同时能够获得每个元素,例如标题。
谢谢!
答案 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
来源可以是File
,InputStream
,byte
数组,String
和so 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);
}