V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Totato5749
V2EX  ›  Android

Gson 有没有办法可以介入反序列化的过程?

  •  
  •   Totato5749 · Apr 20, 2017 · 13826 views
    This topic created in 3298 days ago, the information mentioned may be changed or developed.

    比如有个 json:

    { "name":"jack", "birth":1990 }

    一般来说正常的反序列化过程是定义一个 bean ,有 name 与 birth 两个字段,然后使用 Gson 自动反序列化输出对象实例

    然而我现在有一个 bean 有两个字段,分别是 name 和 age

    那么我如何用 Gson 在反序列化的过程中使用我自定义的 bean 并输出对象实例?(也就是自动将 birth 换算成 age )

    12 replies    2017-04-20 18:01:10 +08:00
    twocity
        1
    twocity  
       Apr 20, 2017
    TypeAdapter
    29995270
        2
    29995270  
       Apr 20, 2017
    楼上正解
    feeeeeef
        3
    feeeeeef  
       Apr 20, 2017
    GSON 解析效率比较低,尽量避开不要用
    XhstormR
        4
    XhstormR  
       Apr 20, 2017 via Android
    @feeeeeef 意思是说换个用 fastjson ?
    taowen
        5
    taowen  
       Apr 20, 2017
    推荐 jackson
    wadenash1991
        6
    wadenash1991  
       Apr 20, 2017
    zzzmode
        8
    zzzmode  
       Apr 20, 2017
    用 @SerializedName 的 alternate
    Ervin
        9
    Ervin  
       Apr 20, 2017
    8 楼正解
    29995270
        10
    29995270  
       Apr 20, 2017
    人家是换算啊,不是换名字啊, 用 @SerializedName 没用
    klesh
        11
    klesh  
       Apr 20, 2017 via Android
    这种情形做个 mapping 不是更方便吗?写个中间类型再转换,既简单又通用啊。
    honeycomb
        12
    honeycomb  
       Apr 20, 2017 via Android
    @XhstormR
    Jackson 更好
    有评测认为 gson 的性能差一些
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2164 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 88ms · UTC 00:51 · PVG 08:51 · LAX 17:51 · JFK 20:51
    ♥ Do have faith in what you're doing.