wil*_*ilx 1 java rest spring json jackson
我正在获取Serializable一些内部API 的实例。该Serializable实例其实Long还是String等有没有一种方法,使DTO,可以处理这种情况呢?使用private Serializable value;JSON的结尾为value: {}。
更新
这是所讨论的代码的简化示例:
@Controller
public class SomeController
{
//...
public MyDto getInfo(Long id)
{
MyDto result = new MyDto();
Serializable obj = svc.getInfo(id);
// obj is either Long, or String, or one of few more fundamental Java types
result.setValue(obj);
return result;
}
}
public class MyDto
{
private Serializable value;
public void setValue(Serializable info)
{
this.value = value;
}
public Serializable getValue()
{
return value;
}
}
Run Code Online (Sandbox Code Playgroud)
更新2
我在这里找到了解决我问题的方法:https : //stackoverflow.com/a/20494813/341065
请注意,杰克逊没有任何用处java.io.Serializable:添加它没有真正的价值。它被忽略。
鉴于此,Jackson将看到与实际类型等效的值(用于序列化,即编写JSON);或者,当阅读时,等同于java.lang.Object。
如果您知道实际的类型,则可以用注释属性@JsonDeserialize(as=ActualType.class)。但是,如果实际值为Strings和Longs,则实际上不需要。
| 归档时间: |
|
| 查看次数: |
6066 次 |
| 最近记录: |