如何使用Spring Data将任意数据的子文档保存到MongoDB?

时间:2014-03-25 11:53:53

标签: java json mongodb spring-data

我正在尝试在mongo db中插入文档(json字符串)。其中一个关键"简介"它的值是一个json字符串。所以,基本上它是一个嵌套的json结构。我知道可以通过滥用文档类中的collection-refs / one-may关系来插入嵌套的json。

我在这里遇到的问题是嵌套部分的json结构不是固定的,因此不能抽象到java类,因为它是从社交网络API获取的自定义数据json。定义"简介"因为Java字符串使用斜杠插入配置文件数据,从而在json数据中转义双引号,大括号等。

没有任何其他方法可以将其转换为另一个对象。

2 个答案:

答案 0 :(得分:3)

要走的路可能是让profile成为包含类中的Map<String, Object>。这样,您就可以在其中存储任意数据。

 class MyDocument {

   Map<String, Object> profile;
 }

答案 1 :(得分:0)

使用Map的答案对我来说有点不清楚......你如何将Spring中的任意JSON字符串转换为Map,以便Spring Data将其保持原样?

我发现使用&#34; com.mongodb.DBObject&#34;类型的属性。作品。然后使用JSON.parse设置属性:

profile = (DBObject) JSON.parse(arbitraryJSONString)