1 回答

TA貢獻1898條經驗 獲得超8個贊
該解決方案背后的想法是實現一個特定的解串器。
public class ProductDeserializer extends StdDeserializer<Product> {
public ProductDeserializer() {
super(Product.class);
}
@Override
public Product deserialize(JsonParser parser, DeserializationContext ctxt) throws IOException {
Product p = new Product();
while (parser.nextToken() != JsonToken.END_OBJECT) {
String tokenName = parser.getCurrentName();
switch (tokenName) {
case "id":
parser.nextToken();
p.setId(parser.getText());
break;
// when you encounter an attribute called value or "" you take its value
case "value":
case "":
parser.nextToken();
p.setValue(parser.getText().trim());
break;
default:
break;
}
}
return p;
}
}
當你使用該類時,你必須注冊它XmlMapper:
XmlMapper xmlMapper = new XmlMapper();
SimpleModule module = new SimpleModule("configModule", Version.unknownVersion());
module.addDeserializer(Product.class, new ProductDeserializer());
xmlMapper.registerModule(module)
產品 POJO 具有 id 和 value 作為屬性。
添加回答
舉報