0

我需要将一个javabean(带有任意嵌套的bean)序列化为纯文本,然后再恢复为一个对象图。

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

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

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

并使用 DataBinder 生成一个包含两个嵌套 bean的顶级 bean(带有 property id) 。List

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

我希望有以下形式:

Map<String,String> reduceBeanToNameValuePairs(Object bean)

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

4

1 回答 1

1

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

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

于 2009-03-24T23:43:29.477 回答