当属性名称中包含点时,我的get / set方法应该是什么

时间:2018-03-08 17:11:26

标签: json gson

如果我的属性名称在json中有点,如下所示payment_details.type,如果我想使用Gson检索Json值,我将如何以及我将要做什么。

{
    "statusCode": 422,
    "error": "Unprocessable Entity",
    "message": "Bad data received",
    "err_data": {
        "payment_details.type": {
            "location": "body",
            "param": "payment_details.type",
            "msg": "Must be either etransfer or cheque"
        }
    }
}

目前我正在这样做..

new Gson().fromJson(response.asString(), MyApiResponse.class).getErr_data().getPayment_details_type().getMsg();

它对我不起作用..我无法找回" msg"来自json的价值。

1 个答案:

答案 0 :(得分:1)

使用@SerializedName注释字段以指示JSON序列化的属性名称。

这将是:

public class MyApiResponse {

    @SerializedName("err_data")
    private ErrorDetails errorDetails;

    ...
}
public class ErrorDetails {

    @SerializedName("payment_details.type")
    private PaymentDetails paymentDetails;

    ...
}