java - 使用 Struts 2 内置 JSON 实用程序类

标签 java json struts2

在一个Struts 2项目中,我们需要序列化和反序列化对象,由于我们的需求很简单,我们决定使用Struts 2 JSONUtil而不是gson

import org.apache.struts2.json;

String json = JSONUtil.serialize(myAccountVO);
// return: {"accountNumber":"0105069413007","amount":"1500","balance":"215000"}

对于反序列化,我们面临类转换异常

    AccountVO vo =(AccountVO) JSONUtil.deserialize(json);
    //Exception

我发现反序列化返回一个包含对象属性键值的映射。所以我必须这样做:

HashMap<String,String> map = (HashMap) JSONUtil.deserialize(string)
accountVo.setAccountNumber(map.get("accountNumber"));
....

我能做得更好吗,或者我对这个实用程序的期望太高了。

最佳答案

反序列化 JSON 后,您可以使用 JSONPopulator从映射中填充 bean 属性。例如

JSONPopulator populator = new JSONPopulator();
AccountVO vo = new AccountVO();
populator.populateObject(vo, map);

关于java - 使用 Struts 2 内置 JSON 实用程序类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36822495/

相关文章:

java - 根据子节点的数量确定二叉树中的节点数量

java - 故意抛出异常是一种不好的形式吗?

java - 如何在实用程序类对象的属性中使用别名拦截器

java - 阻止用户直接访问 Struts2 操作?

Java Hibernate 连接泄漏

java - 持久性错误

java - 多个数据库的 Dao 接口(interface)?

java - 如何避免接口(interface)的通用编译器警告

java - Jackson 序列化列表实体(将字段添加到根列表)

javascript - 超基本的 JavaScript 回调