我正在尝试实现一个大学项目,我尝试从两个Json字段中获取值并将其映射到一个pojo类。
示例Json:
"event":[{"D17-32":0,"S10":"D"}]
Pojo课程
public class Event {
@JsonDeserialize(using = SignalCustomDeserializer.class)
@JsonTypeInfo(use = JsonTypeInfo.Id.NONE)
@JsonProperty("S10")
private Signal S10;
@JsonProperty("D17-32")
private String D17_32;
//Getter and setter implementation
}
我需要将字段序列化为
的类 public class Signal{
private String value;
private String detectorId;
private int detectorValue; //this value has to be fetched from another json
//Getter and setter implementation
}
自定义反序列化程序类
public class SignalCustomDeserializer extends JsonDeserializer {
@Override
public Signal deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
String signalId = jsonParser.getCurrentName();
String signalVal = jsonParser.getValueAsString();
String detectorVal = jsonParser.getValueAsString("D01-16");
Signal signal = new Signal();
signal.setValue(signalVal);
signal.setDetectorId(getDetectorId(signalId));
return signal;
}
}
我能够获得signalId和signalValue,但我无法获得其他字段的值。我不确定在调用自定义反序列化类时它是否在JsonObject中可用。