解密到POJO时出现JSON密钥区分大小写问题

时间:2016-05-07 02:02:59

标签: java c# json web-services rest

我开发了一个使用和返回JSON的Java RESTful POST服务。有一个.NET使用者从我提供的xsd生成CS类。由于.NET变量命名与Java不同,因此输入请求JSON中的键与预期的JSON不同。示例:{“userDetail”:“sairam”}预计但我们正在获取{“UserDetail”:“sairam”}。

由于这个特定的输入JSON无法解组到POJO。我明白我可以配置ObjectMapper:

ObjectMapper objectMapper = new ObjectMapper();  
objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);  
CarInfo info = objectMapper.readValue(data, CarInfo.class);

但是来自我的服务的请求正在内部通过注释@Consumes({MediaType.APPLICATION_JSON})注释进行解组。请帮助解决这个问题的理想方法?如何在注释级别忽略键的情况?

先谢谢!!

编辑:@JavaNaming注释可以与PropertyNamingStrategy.PascalCaseStrategy.class值一起使用。但我仍然得到:“UnrecognizedPropertyException:无法识别的字段”UserDetail“” 不确定我需要在哪里添加此注释以及我在这里缺少的内容

1 个答案:

答案 0 :(得分:1)

您可以通过MessageBodyReader接口提供自己的自定义类型映射来实现它。这基本上允许您轻松扩展JAXRS运行时以支持您自己的自定义实体提供程序。 以下是基于您的方案的粗略示例。

while IFS= read -d '' file; do
  echo "$file"
done < <(printf '%s\0' * | sort -f)