我需要将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)
但没有找到任何类似的运气。
答案 0 :(得分:1)
您可以查看Commons BeanUtils。它的BeanMap类提供了一个entrySet方法,用于访问包装bean的属性作为地图的条目。
这个功能已经足够用于“扁平”bean,并且可能为添加嵌套bean图的必要递归提供了一个很好的起点。