首页 > 解决方案 > struts2-json-plugin 可以接受大写的驼峰式参数吗?

问题描述

我正在使用 struts2(struts2-json-plugin) 来处理Content-Type=application/json请求,

一切都很好,params 风格是小驼峰,比如{"region":"China","version":"v4"}

但是当 params 是大写驼峰式时,它就不起作用了,比如{"Region":"China","Version":"v4"}.

我已经阅读了 struts 文档(https://struts.apache.org/plugins/json/),但仍然没有找到解决方法。

这是我的 struts.xml 的一部分:

这个

标签: struts2camelcasingstruts2-json-plugin

解决方案


它不能与不区分大小写的 json 对象一起使用,因为名称被转换为区分大小写的操作类的 Java 类变量。

json 插件包含命名的拦截器json,您应该将其配置为从请求中反序列化 json 内容的操作。这个答案指向一些负责序列化/反序列化和填充 Java 对象的类。

如果您不想填充操作,则不应使用此拦截器。而是使用此库或任何其他第三方库手动解析请求以获取JSONObject. 或者您可以重写拦截器并注释正在使用JSONPopulator但反序列化对象的代码JSONUtil

如果要将具有小写名称的 json 对象转换为骆驼大小写,则应在填充过程之前覆盖这些类之一以对应于 Java 类变量名称。


推荐阅读