如何从JSON对象中删除包装器?

时间:2011-06-03 01:06:34

标签: java json gson

我有一个带有包装器的JSON对象,其中包含有关它来自的服务的信息。在解析对象之前,我非常关心我想取下包装器,然后解析对象。

如何更改此JSON对象:

{"object":{"id_object": 1, "description": "Black" }, "origin":"colors"}

进入这个:

{"id_object": 1, "description": "Black"}

我使用GSON作为JSON解析器,但如果其他任何人都会给我功能,我可以更改库。

提前致谢。

2 个答案:

答案 0 :(得分:4)

由于整个事物都是json的一团,因此“解开它”是没有意义的。只需解析整个事物,并抓住“对象”键的值,然后从那里开始。

答案 1 :(得分:1)

超级hacky解决方案:

private class Holder{
    private IdHolder object;
    private String origin;

    public IdHolder getObject() {
        return object;
    }
    public String getOrigin() {
        return origin;
    }

    private class IdHolder{
        private int id_object;
        private String description;
    }
}


    Holder holder = gson.fromJson("{\"object\":{\"id_object\": 1, \"description\": \"Black\" }, \"origin\":\"colors\"}", Holder.class);
    System.out.println(gson.toJson(holder.getObject()));

会推荐@bmargulies回答,这是正确的做法。