Преобразование JSON в класс POJO с несколькими словами в качестве ключа с помощью Gson

#java #json #gson #pojo

#java #json #gson #pojo

Вопрос:

У меня есть JSON, подобный этому:

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

Я хочу преобразовать выше json в ниже POJO, используя gson.

 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);
 

Комментарии:

1. В чем ваш вопрос?

2. @YaroslavFyodorov, скорее всего, запрашивает OP @SerializedName .

Ответ №1:

Как указано, вам нужно использовать @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;
}