【发布时间】:2020-10-20 08:44:56
【问题描述】:
我使用 API 来请求数据。对于一个请求,当我尝试将值设置为 int 时收到 NULL 指针异常。
public class Player implements Serializable {
...
...
...
...
@JsonProperty("offsides")
private Integer offsides;
...
...
@JsonProperty("offsides")
public Integer getOffsides() {
return offsides;
}
@JsonProperty("offsides")
public void setOffsides(Integer offsides) {
this.offsides = offsides;
}
...
public class Fixtures {
private final static long serialVersionUID = 2571183788260356219L;
public static void main(String args[]) throws Exception {
ObjectMapper mapper = new ObjectMapper();
...
...
...
FixtureJSONMapp fixturesFixtures = mapper.readValue(fixturesFile, FixtureJSONMapp.class);
List<String> insertStatus = FixturesFixturesInsert.insertAllFixtures(fixturesFixtures,
statsNumb, playersNumb, eventsNumb, lineupsNumb);
}
}
...
public class FixturesFixturesInsert {
public static List<String> insertAllFixtures(FixtureJSONMapp fixturesFixtures, int statsNumb, int playersNumb, int eventsNumb, int lineupsNumb) throws Exception {
try {
Connection con = dbConnector.ConnectToDB();
PreparedStatement pstmtFixtures = con.prepareStatement(".....");
for(int i = 0; i < fixturesFixtures.getApi().getFixtures().size(); i++) {
...
...
...
...
int offsides = fixturesFixtures.getApi().getFixtures().get(i).getPlayers().get(j).getOffsides();
...
}
}
在这种情况下,我得到了一个 NULL 指针异常。我可以解决 int offsides = (fixtures....getOffsides() != null ? getOffsides() : 0); 但我认为我应该能够使用 mapper.getSerializationConfig().setSerializationInclusion(Inclusion.NON_NULL);或类似的东西,但我无法让它工作。我想将此设置设置为更全球化,因为我将不得不在很多地方这样做。
如果我收到的 JSON 字符串中的值为 NULL,我想将值设置为 0。这可能吗? 正如主题中提到的,我使用 Jackson 1.x (org.codehaus.jackson)
【问题讨论】:
标签: java serialization jackson