使用Jackson将json转换为Java对象时如何忽略与Map相关的括号

时间:2019-02-28 20:06:57

标签: java jackson jackson-databind

我正在尝试将JSON转换为Java对象,但是我很难构建Java等效对象。

我的JSON看起来像这样

Amplitude

我需要在此处获取地图作为积分,因为将有n个积分,

{
    "point1": {
        "x": 1.0,
        "y": 2.0
    },
    "point2": {
        "x": 1.0,
        "y": 2.0
    },
    "point3": {
        "x": 1.0,
        "y": 2.0
    },
    "customobject1": "cust1",
    "customobject2": "cust2"
}

但是我遇到了无法识别的属性异常,我知道有一个导致该问题的额外包装器( {} ),有人可以建议我在反序列化JSON时如何忽略此映射名称吗?

注意:我正在使用的实际对象具有类似的结构,有点复杂,这里我只是发布一个原型。

1 个答案:

答案 0 :(得分:2)

如果您事先不知道按键,请使用@JsonAnySetter来映射它们:

  

标记注释,可用于定义一个非静态的,两个参数的方法(属性的第一个参数名称,第二个要设置的值),用作从JSON找到的所有其他无法识别的属性的“后备”处理程序内容。它的行为类似于XmlAnyElement。并且只能用于表示每种类型的单个属性。

     

如果使用,则将来自JSON对象值的所有其他未映射键值对添加到属性(类型为Map或bean)。

cphPayor