带有 rest-plugin 的 Struts2:将 JSON 值映射到 ENUM
Posted
技术标签:
【中文标题】带有 rest-plugin 的 Struts2:将 JSON 值映射到 ENUM【英文标题】:Struts2 with rest-plugin: Map JSON value to ENUM 【发布时间】:2012-10-02 21:30:02 【问题描述】:我正在使用带有 rest-plugin 的 Struts2 来构建 RESTful Web 服务。从 Java 对象序列化到 JSON 是一件轻而易举的事 - 一切都正确而精美地映射。接收 JSON 并尝试将其映射到 Java 对象是一个完全不同的问题。
我遇到了两个问题:
1) 无法将 JSON 数组转换为列表。改用 String[] 来“解决”它。
2) 有一个 ENUM 就是这样的 JSON:
"feature":"id":2,"enabled":true,"description":"one click transactions feature","type":"ONECLICK_OPTIN_TRANSACTIONS","countries":["SG"],"clientId":10
"type" : "ONECLICK_OPTIN_TRANSACTIONS" 应该映射到 Java 对象中的 ENUM,但当然,Struts2 barfs 代替。
有人成功做到了吗?
作为参考,这是异常的相关部分:
Method public java.lang.String org.apache.commons.lang.exception.NestableRuntimeException.getMessage(int) threw an exception when invoked on net.sf.ezmorph.MorphException: com.foo.bar.entity.FeatureType
谢谢, 肖恩
【问题讨论】:
有什么异常?发布完整的堆栈跟踪。 【参考方案1】:不,JSON 中没有枚举之类的东西。当然,有一些解决方法,比如使用hash table,但根据技术进行思考总是好的。
【讨论】:
以上是关于带有 rest-plugin 的 Struts2:将 JSON 值映射到 ENUM的主要内容,如果未能解决你的问题,请参考以下文章