将 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;
}
我有 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;
}