我有一些問題將傑克遜的加力燃燒模塊連接起來。下面的測試案例可以最好地總結這個問題。爲冗長的例子道歉;我試圖儘量縮短這個練習的時間。當您將註冊該模塊的行註釋掉並且在您離開時註冊失敗時,此測試將起作用。傑克遜2.0缺失節點的加力燃燒問題
我使用Jackson 2.1.1進行註釋,核心和加力燃燒。
我會很感激你可能有的想法。
謝謝!
上限
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.module.afterburner.AfterburnerModule;
import org.junit.Test;
import java.io.IOException;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
public class AfterburnerTest {
@Test
public void mapOccupancyNoMaxAdults() throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new AfterburnerModule());
final JsonNode node = objectMapper.readTree(
"{" +
"\"max\":3," +
"\"adults\": {" +
"\"min\":1" +
"}," +
"\"children\":{" +
"\"min\":1," +
"\"max\":2" +
"}" +
"}");
final Occupancy occupancy = objectMapper.reader(Occupancy.class).readValue(node);
assertNull(occupancy.getAdults().getMax());
assertNotNull(occupancy.getChildren().getMax());
}
@JsonIgnoreProperties(ignoreUnknown = true)
public static class Occupancy {
private Integer max;
private Guests adults;
private Guests children;
public Occupancy() {
}
public Occupancy(Integer max, Guests adults, Guests children) {
this.max = max;
this.adults = adults;
this.children = children;
}
public Integer getMax() {
return max;
}
public Guests getAdults() {
return adults;
}
public Guests getChildren() {
return children;
}
}
@JsonIgnoreProperties(ignoreUnknown = true)
public static class Guests {
private Integer min;
private Integer max;
public Guests() {
}
public Guests(Integer min, Integer max) {
this.min = min;
this.max = max;
}
public Integer getMin() {
return min;
}
public Integer getMax() {
return max;
}
}
}
在我看來,這個測試通過傑克遜2.2.0和Afterburner模塊。也許你遇到的潛在問題已經解決了? – StaxMan