首页 > 解决方案 > 奇怪的行为 Spring boot 2.2.9,在响应反序列化期间 parentId 被复制到子 Id 之一

问题描述

应用程序中没有错误,但这就是响应的样子

"parent": {
    "id": 1,
    "children": [
      {
        "id": 1
      },
      {
        "id": 2
      }
    ]
  }

没有 id: 1的孩子,数据库获取很好,数据在离开 Spring Boot Rest Controller 后被操纵(假设在杰克逊反序列化期间的某个地方),但只有 Id 字段被复制(或被复制为父 id)。

这只发生在一个这样的子对象和唯一的 Id 字段上,其他对象都很好。

标签: springspring-bootspring-mvcjacksonjackson-databind

解决方案


我发现了这个问题。该问题与 Jackson / Spring 无关。

问题来自 javascript,我在 javascript 中越过了 MAX_SAFE_INTEGER,因此当原始响应转换为 Json 时,会观察到这种奇怪的行为。

我注意到它只发生在第一个孩子身上,在孩子名单中,因此我觉得它非常奇怪。


推荐阅读