我有以下java类,例如Employee
class Employee{
String empId;
}
当我使用Jackson Object Mapper序列化这个java类时,如果员工ID是123,我会得到示例Json输出。
{
"empId":"123"
}
如果emp Id纯粹是数字,例如123
,我需要的是以下输出{
"empId":123
}
并且,如果员工ID是" A123"
{
"empId":"A123"
}
我可以编写一个自定义的Serializer类并使用自定义的Serializer注释empId,但在包含许多对象的大型代码库上执行此操作是一个繁琐的过程。
杰克逊是否附带任何开箱即用的功能来检查字符串是否为数字,然后将其表示为数字或在序列化过程中将其表示为字符串,类似于将数字写为字符串功能
请告诉我您的建议。
答案 0 :(得分:0)
你的例子在基础知识上是错误的。
您尝试针对数据类型的主体。
您如何看待任何客户可以区分“empId”字段的值类型?
必须有一种类型 - 字符串或数字。期。
否则,对于客户端解析器来说,这是一个很大的痛苦。当一个实例相同的字段是String而另一个实例是一个数字时,无法解析相同的JSON结构。