忽略json中的元信息

时间:2018-09-12 23:25:33

标签: android json kotlin gson retrofit

我正在GsonConverterFactory上使用Retrofit(在Android上)。我从端点返回的json中包含json meta information。例如,响应如下所示:

{
    meta:{"some meta information"},
    data:{
        address:{
            meta:{"some other meta information"},
            data:{
                street: "Main Street",
                zip: "99999",
                state: "CA",
            },
        ...
    }
}

使用Gson(通过GsonConverterFactory),我的数据模型需要看起来像这样(在Kotlin中):

class Response(val data: Data1)
class Data1(val address: Address)
class Address(val Data2)
class Data2(val street: String, val zip: String, val state: String)

如您所见,如果它不是原始类型,则对象将包装在数据成员内部。但是,我不想在我的数据模型类中到处都包含那些数据对象。

是否有一种简单的方法可以“跳过”这些数据标签?我不想排除它们,只是直接包括其中的内容。例如,数据模型将如下所示:

class Response(val address: Address)
class Address(val street: String, val zip: String, val state: String)

等效的json看起来像这样:

{
    address:{
        street: "Main Street",
        zip: "99999",
        state: "CA",
    },
    ...
}

不幸的是,这不是端点传递json的方式。

有什么方法可以通过Gson,Jackson或其他可以在Android上运行的json解析器来实现?

1 个答案:

答案 0 :(得分:0)

要实现所需的功能,最好的方法是编写Gson解串器。