将json更改为java pojo

时间:2017-12-04 04:37:38

标签: java json jackson mapper objectmapper

假设我有一个JSON文件example.json

example.json

    {
      "BaggageMaxSize" : {
            "mesurement" : "sum",
            "width" : 70,
            "height" : 50,
            "depth" : 40
        }
    }

创建POJO类:

    public class pojoexample{
      private BaggageMaxSize BaggageMaxSize;
      // getter
      // setter
    }

然后:

public class BaggageMaxSize
{
    private String height;

    private String width;

    private String depth;

    private String mesurement;

    // getter 
    // setter
}

现在,我想使用mapper.readValue将文件更改为BaggageInfoPolicy.class:

BaggageInfoPolicy bip = mapper.readValue(file, BaggageInfoPolicy.class);

bip.getBaggageMaxSize().getMesurement()返回null值。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

首先尝试使用mapper.writeValue并检查生成的JSON对象的外观。很可能,当您从JSON反序列化时,int -> string中的BaggageMaxSize转换存在问题。

另外,请检查您的getter / setter是否公开显示,并且可以pojoexampleBaggageMaxSize同时使用。

答案 1 :(得分:0)

实际上,您的JSON代表pojoexample类实例,而不是BaggageInfoPolicy对象,您尚未在帖子中分享这些对象。

因此您需要将代码更改为:

PojoExample bip = mapper.readValue(file, PojoExample.class);

因此它正确读取PojoExample对象。

注意:

  • 您的class应遵循java命名约定和 以大写字母开头,这就是我将其更改为PojoExample的原因, 也可以在类定义中更改它。
  • 并确保您的班级字段与JSON中的types相同,并且getterssetters已正确实施。