将 JSON 转换为 POJO class 具有多个单词作为 Gson 的键

Convert JSON to POJO class having multi words as key with Gson

我有 JSON 这样的:

{
    "Cell No": "",
    "Landline No": "",
    "FFCD": "243594",
    "Utility Code": "NSCH00000000022820",
    "Email ID": "",
    "Change Reason": "AC1-Default Ack Reason",
    "Category Code": "GH99"
}

我想使用 gson 将 json 以上的 POJO 转换为以下的 POJO。

class SponsorMandate{
    private String cellNo;
    private String landlineNo;
    private String ffcd;
    private String utilityCode;
    private String emailId;
    private String changeReason;
    private String categoryCode;
}

我的以下代码不起作用:

Gson gson = new Gson();
String jsonElement = gson.toJson(rowData);
System.out.println("print json" + jsonElement);

SponsorMandate sponsorMandateFileRow =
        gson.fromJson(jsonElement,SponsorMandate.class);

如评论所述,您需要使用 @SerializedName 不仅是因为“许多单词键”,而且例如 ffcd 在您的 JSON 中的大小写不同。注释名称与您的 JSON 完全一样 Gson 能够解析它:

@Getter @Setter
class SponsorMandate {
    @SerializedName("Cell No")
    private String cellNo;
    @SerializedName("Landline No")
    private String landlineNo;
    @SerializedName("FFCD")
    private String ffcd;
    @SerializedName("Utility Code")
    private String utilityCode;
    @SerializedName("Email ID")
    private String emailId;
    @SerializedName("Change Reason")
    private String changeReason;
    @SerializedName("Category Code")
    private String categoryCode;
}