我将 Struts2 与 rest-plugin 一起使用来构建 RESTful 网络服务。从 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
谢谢, 肖恩
最佳答案
不,JSON 中没有枚举这样的东西。当然也有解决办法,比如使用 hash table。但根据技术考虑总是好的。
关于java - 带有 rest-plugin : Map JSON value to ENUM 的 Struts2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12852744/