如何使用 JsonObject 在 Java 中创建正确的 Json

How to create correct Json in Java using JsonObject

如何在 Java 中使用 JSONObject 创建一个如下所示的 JSON 对象?

{
    "fields": {
     "issuetype":{"id": "10004"},
     "project":{"key": "TES"},
     "reporter":{"name":"TestUser"},
     "summary":"Screen not responding",
     "description":"New Bug in UI. Screen not responding",
     "assignee":{"name":"Test"}

     }
}

到目前为止我尝试了什么

JsonObject issuetype = new JsonObject();
        issuetype.addProperty("id", "10004");
        JsonObject project = new JsonObject();
        project.addProperty("key", "TES");
        JsonObject reporter = new JsonObject();
        reporter.addProperty("name", "TestUser");
        JsonObject summary = new JsonObject();
        summary.addProperty("summary", "Screen not responding");
        JsonObject description = new JsonObject();
        description.addProperty("description", "New Bug in UI. Screen not responding");
        JsonObject assignee = new JsonObject();
        assignee.add("name", "Test");

谁能帮我解决这个问题?

谢谢

你应该使用 Json factory class to create object builders:

JsonObject issuetype = Json.createObjectBuilder()
    .add("fields", Json.createObjectBuilder()
        .add("issuetype", Json.createObjectBuilder().add("id", "10004"))
        .add("project", Json.createObjectBuilder().add("key", "TES"))
        .add("reporter", Json.createObjectBuilder().add("name", "TestUser"))
        .add("summary", "Screen not responding")
        .add("description", "New Bug in UI. Screen not responding")
        .add("assignee", Json.createObjectBuilder().add("name", "Test"))
    )
    .build();

尝试关注,

        JsonObject issuetype = new JsonObject();
        issuetype.addProperty("id", "10004");
        JsonObject project = new JsonObject();
        project.addProperty("key", "TES");
        JsonObject reporter = new JsonObject();
        reporter.addProperty("name", "TestUser");
        JsonObject summary = new JsonObject();
        summary.addProperty("summary", "Screen not responding");
        JsonObject description = new JsonObject();
        description.addProperty("description", "New Bug in UI. Screen not responding");
        JsonObject assignee = new JsonObject();
        assignee.addProperty("name", "Test");

        JsonObject field = new JsonObject();
        field.add("issuetype", issuetype);
        field.add("project", project);
        field.add("reporter", reporter);
     // field.add("summary", summary);
        field.addProperty("summary", "Screen not responding");
        field.add("description", description);
        field.add("assignee", assignee);

        JsonObject fields = new JsonObject();
        fields.add("fields", field);

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

输出:

{
    "fields": {
        "issuetype": {
            "id": "10004"
        },
        "project": {
            "key": "TES"
        },
        "reporter": {
            "name": "TestUser"
        },
        "summary": {
            "summary": "Screen not responding"
        },
        "description": {
            "description": "New Bug in UI. Screen not responding"
        },
        "assignee": {
            "name": "Test"
        }
    }
}