Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Gson未序列化值_Java_Json_Serialization_Gson - Fatal编程技术网

Java Gson未序列化值

Java Gson未序列化值,java,json,serialization,gson,Java,Json,Serialization,Gson,这是我的Json响应 {"averageYield":15.0,"maxYield":15.0,"personalYield":100.0} 我使用Gson序列化这个Json,但它将所有字段的值存储为0 这是我的模型课 public class GetYieldComparisonResponse extends RealmObject { @SerializedName("averageYield") private double averageYield; @S

这是我的Json响应

{"averageYield":15.0,"maxYield":15.0,"personalYield":100.0}
我使用Gson序列化这个Json,但它将所有字段的值存储为0

这是我的模型课

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;
    }
}
我使用领域来存储数据,但每个字段的存储值都是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 );
    }
}
//此类用于将Json映射到Java对象,反之亦然。
公共类GsonUtils{
私有静态最终Gson Gson=new Gson();
//这将把Java对象转换成JSON字符串。。。
公共静态字符串toGson(对象){
返回gson.toJson(对象);
}
//从JSON提供Java对象
公共静态T fromGson(字符串json,类类型){
返回gson.fromJson(json,类型);
}
//获取数组。。。
公共静态对象JSONTORARY(字符串json,类型){
返回gson.fromJson(json,类型);
}
}

如果我这样做,效果会非常好:

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

可能是您的响应中存在的问题?

什么类型的
basicResponse
以及
basicResponse.getResponse()
返回什么类型?这是Json响应。{“averageYield”:15.0,“maxYield”:15.0,“personalYield”:100.0}这一个。我发现没有将所有字段的值存储为0。在这个响应中。@antoniosss我使用的是realm,所以当它将json序列化为对象时,gson将所有值设为0。@AviPatel您还没有回答我的问题
Json响应
可能不是一种类型,因为它包含空格。我们也需要这个包。我不这么认为,这应该是问题所在,因为您所做的与basicResponse.getResponse()所做的相同。这也没有帮助。