如何序列化由Spring的DataBinder加载的javabean?

时间:2009-02-06 21:13:22

标签: java spring serialization properties javabeans

我需要将javabean(带有任意嵌套bean)序列化为纯文本,然后将其恢复为Object图。

出于这个问题的目的,我对XML,JSON等不感兴趣,而是对名称/值对感兴趣。

Spring DataBinder非常适合将名称/值对列表转换为真实对象。例如,我们可以提供:

values.addPropertyValue("id", "6789");
values.addPropertyValue("nestedBean[0].systemId", "FOO");
values.addPropertyValue("nestedBean[1].systemId", "BAR");

使用DataBinder生成一个顶级bean(包含属性id),其中包含两个嵌套bean的List

我的问题是,如何轻松地将bean序列化为DataBinder期望的格式?

我希望有一些形式:

Map<String,String> reduceBeanToNameValuePairs(Object bean)

但没有找到任何类似的运气。

1 个答案:

答案 0 :(得分:1)

您可以查看Commons BeanUtils。它的BeanMap类提供了一个entrySet方法,用于访问包装bean的属性作为地图的条目。

这个功能已经足够用于“扁平”bean,并且可能为添加嵌套bean图的必要递归提供了一个很好的起点。