忽略json中的元信息

问题描述 投票:1回答:1

我在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解析器实现这一目标?

android json kotlin gson retrofit
1个回答
0
投票

要实现您的目标,最好的方法是编写Gson解串器。

© www.soinside.com 2019 - 2024. All rights reserved.