我需要将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)


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

最佳答案

您可以查看Commons BeanUtils。它的BeanMap类提供了entrySet方法,用于将包装的bean的属性作为映射的条目进行访问。

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

07-26 04:26