有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用jackson的mixin映射复杂类型?

假设我有这些POJO:

    public class Person()
    {
        private String firstName;
        private String lastLamel
        private Address address;

        // setters, getters, toString...
    }

    public class Address()
    {
        private String line1;
        private String city;

        // setters, getters, toString...
    }

我们可以轻松序列化以下json:

    {
        "firstName":"John"
        "lastName":"Smith"
        "address" : {
            "line" : "Fake Street",
            "city" : "Fake town"
        }
    }

现在,让我们假设,除了上面的json,我还需要从具有完全不同结构的XML序列化对象:

    <r00t>
        <PrsInfo>
            <frNm>John</fnNm>
            <lNm>Smith</lNm>
        </PrsInfo>
        <lctn>
            <addr>
                <ln>Fake Street</ln>
                <town>Fake town</town>
            </addr>
        </lctn>
    </r00t>

现在,首先我考虑了MOXy,因为可以在external file中定义绑定。不过,我觉得莫西和杰克逊在一起会很奇怪。然后,我调查了杰克逊的混音。mixin需要有一个包含映射指令的抽象类(或接口),PersonMixIn和AddressMixIn也是如此。就我的情况而言,据我所知,我必须制作POJO的副本,作为结构怪异的xml之间的代理。也就是说,我试图避免使用Person、PersonMixin、Address、AddressMixin等,因为对于我试图完成的任务来说,这似乎有点过分了。如果要序列化两个以上的POJO,那么它将非常混乱

有没有一种方法可以让我拥有一个PersonMixIn类并映射该xml(带有地址)


共 (0) 个答案