Gson не сериализует значения - PullRequest
1 голос
/ 06 мая 2019

это мой ответ Json ..

{"averageYield":15.0,"maxYield":15.0,"personalYield":100.0}

Я использую Gson для сериализации этого Json, но он хранит значения как 0 для всех полей.

это мой класс Model.

public class GetYieldComparisonResponse extends RealmObject {

    @SerializedName("averageYield")
    private double averageYield;

    @SerializedName("maxYield")
    private double maxYield;

    @SerializedName("personalYield")
    private double personalYield;

    public double getAverageYield() {
        return averageYield;
    }

    public void setAverageYield(double averageYield) {
        this.averageYield = averageYield;
    }

    public double getMaxYield() {
        return maxYield;
    }

    public void setMaxYield(double maxYield) {
        this.maxYield = maxYield;
    }

    public double getPersonalYield() {
        return personalYield;
    }

    public void setPersonalYield(double personalYield) {
        this.personalYield = personalYield;
    }
}

Я использую Realm для хранения данных, но значения хранения для каждого поля равны 0.

GetYieldComparisonResponse getYieldComparisonResponse = GsonUtils.fromGson( basicResponse.getResponse(), GetYieldComparisonResponse.class );

это мой GsonUtils.java

//  This Class is useful for mapping Json into Java Objects and vice versa.
public class GsonUtils {

    private static final Gson gson = new Gson();

    //  This will Convert Java Objects into JSON String...
    public static String toGson(Object object) {
        return gson.toJson( object );
    }

    //  Gives Java Objects from JSON
    public static <T> T fromGson(String json, Class<T> type) {
        return gson.fromJson( json, type );
    }

    //  get Array...
    public static Object jsonToArray(String json, Type type) {
        return gson.fromJson( json, type );
    }
}

1 Ответ

1 голос
/ 06 мая 2019

Это прекрасно работает, если я делаю что-то вроде этого:

GetYieldComparisonResponse getYieldComparisonResponse = GsonUtils.fromGson( "{\"averageYield\":15.0,\"maxYield\":15.0,\"personalYield\":100.0}", GetYieldComparisonResponse.class );

Может проблема в вашем ответе?

...