我正在使用Play Framework 2.5(Java)和表单数据绑定(来自Spring Framework)开发REST webservice。 我对这个API非常有经验,并且喜欢它将形式化验证约束(例如Required)的方式,所以我想避免使用BodyParser API。Play Framework JSON表单的类型选择
我需要解析JSON请求像这样:
{
"elements": [
{
"val": "1"
},
{
"val": ["1","2","3"]
}
]
}
的问题是“VAL”接受两种不同的类型:字符串(java.lang.String中在Java中)和一个字符串数组(在我的代码中的java.util.List)。
我该如何在我的Java代码中“类型化”这种JSON格式的模型? 我已经试着用“val”属性为不同类型的两个不同子类实现的抽象(和通用)类,但是Spring无法实例化对象(BeanInstantiationException)。
这是当前的数据模型:
public class Foo {
@Constraints.Required
public List<Fii> elements;
}
public class Fii {
@Constraints.Required
// Which type ? Object ?
public ? val;
}
谢谢:)。我不确定Java对象类型是否会自行适应JSON结构,因为我认为数据映射器只查看Java类型。我确实可以通过instanceof测试将每个Value类转换为特定的类。 –
@Alexandre LEBRUN很高兴听到我的回答帮助你! –