gpt4 book ai didi

android - Gson根据字段名自定义反序列化逻辑

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:41:37 26 4
gpt4 key购买 nike

我的课是这样的:

class Foo {
public String duration;
public String height;
}

我的 json 数据看起来像

{"duration":"12200000", "height":"162"}

现在我想反序列化它

 Foo foo = gson.fromJson(jsonStr, Foo.class);

这样, foo.duration 是“20 分钟”(分钟数), foo.height 为“162cm”

使用 Gson 可以做到这一点吗?

谢谢!

最佳答案

GSON 允许创建自定义反序列化器/序列化器。尝试阅读 here .

抱歉没有例子。

class FooDeserializer implements JsonDeserializer<Foo>{
@Override
public Foo deserialize(JsonElement json, Type typeOfT,
JsonDeserializationContext context) throws JsonParseException {

JsonObject jo = (JsonObject)json;
String a = jo.get("duration").getAsString()+" mins";
String b = jo.get("height").getAsString() + " cm";

//Should be an appropriate constructor
return new Foo(a,b);
}
}

然后:

Gson gson = new GsonBuilder().registerTypeAdapter(Foo.class, foo.new FooDeserializer()).create();

您应该会收到您希望使用 fromJson(...) 获得的结果。

关于android - Gson根据字段名自定义反序列化逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8165412/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com