使用GSON来传播jira json

时间:2015-03-11 10:11:19

标签: java json gson jira

我使用GSON解析了所有数据,除了这个给我带来麻烦。

我有JSON数据(对于Issue java pojo):

    "issue": {
    "id": "44544",
    "self": "http://jira.webaroo.com/rest/api/2/issue/44544",
    "key": "BIZSOL-166",
    "fields": {
        "summary": "Jira Wrapper Implementation - Test",
        "issuetype": {
            "self": "http://jira.webaroo.com/rest/api/2/issuetype/2",
            "id": "2",
            "description": "A new feature of the product, which has yet to be developed.",
            "iconUrl": "http://jira.webaroo.com/images/icons/issuetypes/newfeature.png",
            "name": "New Feature",
            "subtask": false
        },
        "votes": {
            "self": "http://jira.webaroo.com/rest/api/2/issue/BIZSOL-166/votes",
            "votes": 0,
            "hasVoted": false
        },
        "resolution": null,
        "fixVersions": [],
        "resolutiondate": null,
        "customfield_11101": null
    }
}

我将我的java类作为Issue.java:

protected String key;
protected String summary;
protected IssueType issuetype;
protected Votes votes;
protected Resolution resolution;
protected List<FixVersions> fixVersions;
protected Date resolutiondate;

我可以从GSON转换获得关键值。

但我无法获得其他数据。

我知道它不会来,因为它们属于&#34;字段&#34;结构,但我不想定义&#34;字段&#34;我的java中的结构。

我直接想要获得一级降值。

请帮助我使用GSON实现这一目标。我是GSON的新手。

1 个答案:

答案 0 :(得分:1)

也许有点晚了但是对于WIT

您可以将json解析为json对象,然后按键名称获取元素。

public static void main(String[] args) throws FileNotFoundException {
Gson gson = new Gson();
JsonParser prser = new JsonParser();
JsonReader file = new JsonReader(new FileReader("./file.txt"));
JsonObject result = prser.parse(file).getAsJsonObject();
System.out.println(result.get("issue").getAsJsonObject().get("id"));
System.out.println(result.get("issue").getAsJsonObject().get("key"));
System.out.println(result.get("issue").getAsJsonObject().get("fields").getAsJsonObject().get("votes")
    .getAsJsonObject().get("self"));
}

结果将是:

  

“44544”

     

“BIZSOL-166”

     

http://jira.webaroo.com/rest/api/2/issue/BIZSOL-166/votes

唯一需要注意的是嵌套键...... 例: id 是来自问题的孩子,因此您必须获得第一个父级并深入导航,直到找到您想要的元素

您可以确定将一个集定义为:

Set<Map.Entry<String, JsonElement>> entrySet = result.entrySet();