每个JSON可序列化的Java对象都可以表示为Map<String,Object>吗?



我有一堆Java对象正在用Jackson序列化。所有序列化类型如下所示:

class MySampleClass {
    @JsonProperty("propName1")
    private MyCustomType propName1;
    @JsonProperty("propName2")
    private MyOtherCustomType propName2;
    @JsonCreator
    public MySampleClass(@JsonProperty("propName1") MyCustomType propName1, @JsonProperty("propName2") MyOtherCustomType propName2) {
        this.propName1 = propName1;
        this.propName2 = propName2;
    }
}

是否存在将此类的实例转换为Map<String, Object>然后将映射转换为 JSON 将无法解散回原始 Java 对象的情况?

这将完成,除非您收到这些对象的数组。 如果是这种情况,那么您可以使用 MySampleClass[] .

JSON 在 RFC 7159 中定义。 从这里:

对象是零个或多个名称/值
的无序集合 对,其中名称是字符串,值是字符串,数字,
布尔值、空值、对象或数组。

(强调我的)

因此,JSON 对象必须具有字符串作为键,并且值可以是少数对象类型之一。

相关内容

最新更新