Игнорировать метаинформацию в json - PullRequest
0 голосов
/ 13 сентября 2018

Я использую Retrofit (на Android) с GsonConverterFactory.JSON, который я получаю от конечной точки, содержит метаданные json .Например, ответ будет выглядеть следующим образом:

{
    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 или другого анализатора json, который может работать на Android?

1 Ответ

0 голосов
/ 13 сентября 2018

Чтобы достичь того, что вы ищете, лучшим способом было бы написать десериализатор Gson.

...