У меня ниже строки Json, и я хочу десериализовать то же самое с помощью некоторого инструмента objectMapper, например, Джексона.Но это вызывает исключение
Нераспознанное поле "CPREQUESTS" (класс mmt.jacoco.Respon), не помеченное как игнорируемое
Использовали много соглашений об именах в классе Pojo дляименование камер данных.тоже использовал @JsonProperty("CPREQUESTS")
.Все, что я могу получить, это то, что мне нужно использовать какое-то соглашение об именах при сериализации - десериализацию того же самого, но не в состоянии решить то же самое.
Это нормально работает с Gson, но Джексон терпит неудачу
public class APItesting {
public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {
String res = "{\r\n \"CPREQUESTS\": [\r\n {\r\n \"a\": \"b\"\r\n },\r\n "
+ "{\r\n \"a\": \"d\"\r\n }\r\n ],\r\n \"costAmount\": 10488\r\n}";
Gson g = new Gson();
Respon s = g.fromJson(res, Respon.class);
System.out.println(s.getCPREQUESTS().get(0).getA());
System.out.println(s.getCPREQUESTS().get(1).getA());
System.out.println(s.getCostAmount());
System.out.println(s.getCPREQUESTS().size());
ObjectMapper om = new ObjectMapper();
Respon s1 = om.readValue(res, Respon.class);
System.out.println(s1.getCPREQUESTS().size());
}
}
Класс отклика, как показано ниже: -
public class Respon {
private List<CPREQUESTS> CPREQUESTS = null;
@JsonProperty("costAmount")
private Integer costAmount;
@JsonProperty("CPREQUESTS")
public List<CPREQUESTS> getCPREQUESTS() {
return CPREQUESTS;
}
@JsonProperty("CPREQUESTS")
public void setCPREQUESTS(List<CPREQUESTS> cPREQUESTS) {
this.CPREQUESTS = cPREQUESTS;
}
@JsonProperty("costAmount")
public Integer getCostAmount() {
return costAmount;
}
@JsonProperty("costAmount")
public void setCostAmount(Integer costAmount) {
this.costAmount = costAmount;
}
}