【问题标题】:Gson deserialize child as string in parentGson 将子级反序列化为父级中的字符串
【发布时间】:2017-02-20 12:09:26
【问题描述】:

我正在尝试反序列化这个 json 响应:

{  
    "_index":"miracle",
    "_type":"user",
    "_id":"AVpbIYg7NtDacQRf2Gz5",
    "_score":1.0,
    "_source":
    {  
        "username":"andrei23",
        "password":"andrei_23"
    }
}

我尝试了类似的方法,但它不起作用:

public class HitDTO {

    @SerializedName("_id")
    private String id;

    @SerializedName("_source")
    private String source;
}

我可以使用某种注释还是有其他东西?

【问题讨论】:

    标签: java json serialization gson


    【解决方案1】:

    首先,您需要为您的字段创建 setter 和 getter。

    然后,封装您的 JSON 对象。所以编辑你的类如下:

    public class HitDTO {
    
       @SerializedName("_id")
       private String id;
    
       @SerializedName("_source")
       private HitSourceDTO source;
    
       // getters and setters
    }
    

    public class HitSourceDTO {
    
       @SerializedName("username")
       private String username;
    
       @SerializedName("password")
       private String password;
    
       // getters and setters
    }
    

    最后,添加一个函数来返回您请求的 _source 字段格式:

    function String getStringOfSource()
    {
       return "username=" + source.username + " password=" + source.password;
    }
    

    希望对你有帮助!

    编辑:我为此目的搜索了任何类型的注释,但没有找到完全符合您要求的注释。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-07
      • 1970-01-01
      相关资源
      最近更新 更多