JSON-B 将类型转换LocalDate
为简单的字符串。当我有 aType
时,如何确定 JSON-B 是否会直接转换这种类型,即它是否是标量类型?
我没有实例,所以我什至不能尝试将其转换为字符串并查看它是否包含花括号。
或者我是否必须寻找具有valueOf
orparse
方法或构造函数的类型只有一个 String 参数?
可以提前检查给定类型是否可以序列化为 JSON(即从强类型转换为弱类型格式),但是没有办法检查给定类型是否可以反序列化为 POJO,直到你有运行时的实际 JSON 值(即从弱类型格式转换为强类型格式)。
一般来说,可序列化类型的规则很简单:
一般来说,可反序列化的类型的规则是:
@JsonbCreator
)@JsonbCreator
您可能会发现构成“可转换类型”的内容是 JSON-B(或任何其他 Java JSON 库)中的一个非常广泛的标准。例如,{}
可以将 JSON 字符串反序列化为具有公共无参数构造函数的任何类型。同样,没有公共字段或 getter 方法的 Java 类将序列化为 JSON 字符串{}
。
由于可转换类型是一个如此广泛的术语,因此如果您进一步指定您想要实现的目标会有所帮助 - 也许我可以建议一种更具体的方法。
支持 JDK 中的许多常用类。有关完整列表,请参阅JSON-B 规范的第 3.3 - 3.5 节。除了内置类之外,JSON-B 规范的第 3.7 节还指定了要求。
对于反序列化,比序列化有更多的要求。它们在第 3.7 节和第 4.5节中有详细描述。