防止json输出中具有多个双向关系的递归

dvtswwa3  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(167)

在我的spring boot应用程序中,我有三个类。为了简单起见,我们把它们叫做a、b和c。
它们之间都有多对多的关系。我希望能够查询每个类的示例并得到如下结果:
获取所有a的预期输出:

[
    {
        "id": 1,
        "name": "A1",
        "MyBs": [
            {
                "id": 1,
                "name": "B1"
            }
        ],
        "MyCs": [
            {
                "id": 1,
                "name": "C1"
            },
            {
                "id": 2,
                "name": "C2"
            }
        ]
    },
    {
        "id": 2,
        "name": "A2",
        "MyBs": [
            {
                "id": 2,
                "name": "B2"
            }
        ],
        "MyCs": [
            {
                "id": 1,
                "name": "C1"
            },
            {
                "id": 2,
                "name": "C2"
            }
        ]
    }
]

问题是,我想要类似的东西,从类b和类c开始,作为一个入口点,所以这不是一个简单地添加的情况 @JsonIgnore 到b和c区域。
我试过了 @JsonIdentityInfo(generator= ObjectIdGenerators.PropertyGenerator.class, property="id") 但结果是这样的:

[
    {
        "id": 1,
        "name": "A1",
        "MyBs": [
            {
                "id": 1,
                "name": "B1"
            }
        ],
        "MyCs": [
            {
                "id": 1,
                "name": "C1",
                "MyAs": [
                    {
                        1,
                        {
                            "id": 2,
                            "name": "A2"
                        }
                    }
                ]
            },
            {
                "id": 2,
                "name": "C2"
            }
        ]
    },
    2
]

序列化程序在完成a1到a2的序列化之后,会注意到a2已经序列化,并基本上跳过它。
我基本上想要的是a,b和c不要传递关于它们自己的a,b和c的信息,除非它们被直接序列化。有办法吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题