杰克逊中的JSON属性文件不区分大小写

use*_*284 4 java jackson

我有一个JSON属性文件,由用户手动更新.

我使用Jackson Object映射器将其映射到对象:

[ 
   {  "id":"01",
      "name":"Joe",
      "Children" : [ {"Name" : "Alex",
                       "Age" : "21"},
                     {"name" : "David",
                      "Age" : "1"}
                   ]
    },
    {  "id":"02",
       "name":"Jackson",
       "Children" : [ {"Name" : "Mercy",
                       "Age" : "10"},
                      {"name" : "Mary",
                       "Age" : "21"}
                    ]
    }
]
Run Code Online (Sandbox Code Playgroud)

由于它是由用户手动更新的,因此可以使用任何外壳; 混合,上层,下层等我找到的解决方案是,在读取文件时我将转换为小写,如下所示:

 String content = new Scanner(new File("filename")).useDelimiter("\\Z").next();
Run Code Online (Sandbox Code Playgroud)

在此之后,我使用杰克逊映射到我的对象,这是有效的.我使用小写成员名称作为映射类.这是正确的方法还是有其他方法吗?

Kih*_*ats 9

您可以使用

ObjectMapper mapper = new ObjectMapper();
mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
Run Code Online (Sandbox Code Playgroud)

此功能在Jackson版本2.5.0之后.