Gson基于字段名称的自定义反序列化逻辑 [英] Gson custom deserializing logic based on field name

查看:395
本文介绍了Gson基于字段名称的自定义反序列化逻辑的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的课程如下:

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

我的json数据看起来像

  {duration:12200000,height:162} 

现在我想通过反序列化它
$ b $ pre $ f $ f $ foo = gson.fromJson(jsonStr,让Foo.class);

因此,
foo.duration是20分钟(分钟数),
foo.height是162cm



这是可以使用Gson吗?



谢谢!

解决方案

GSON允许创建自定义的反序列化器/序列化器。请尝试阅读此处



抱歉,没有举例。

  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;

//应该是一个合适的构造函数
return new Foo(a,b);


$ / code>

然后:

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

,您应该收到您希望使用 fromJson(。 ..)


My class is like:

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

And my json data looks like

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

Now I want to deserialize it by

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

So that, foo.duration is "20 mins" (number of minutes), foo.height is "162cm"

Is this possible to do using Gson?

Thanks!

解决方案

GSON allows creation of custom deserializers/serializers. Try to read here.

Sorry for without an example.

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);
    }               
}

then:

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

and you should receive result as you wish it to get using fromJson(...).

这篇关于Gson基于字段名称的自定义反序列化逻辑的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆