问题描述
我正在使用struts2(struts2-json-plugin)处理Content-Type=application/json
请求,
在params样式为小写驼峰的情况下,一切都很好,例如{"region":"China","version":"v4"}
。
但是当params是大骆驼字母(例如{"Region":"China","Version":"v4"}
)时,它将无法工作。
我已经阅读了struts docs(https://struts.apache.org/plugins/json/),但仍然找不到解决方法。
这是我的struts.xml的一部分:
解决方法
它不能与不区分大小写的json对象一起使用,因为名称已转换为区分大小写的动作类的Java类变量。
json插件包含名为json
的拦截器,您应将其配置为操作以从请求中反序列化json内容。 This的答案指向负责序列化/反序列化和填充Java对象的某些类。
如果您不想填充操作,则不应使用此拦截器。而是使用此库或任何其他第三方库手动解析请求以获取
JSONObject
。或者,您可以重写拦截器并注释使用JSONPopulator
的代码,但使用JSONUtil
反序列化对象。
如果要将小写名称的json对象转换为驼峰式,则应在填充过程之前覆盖这些类之一,以与Java类变量名称相对应。