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