我需要将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图的必要递归提供了一个很好的起点。