我是 Spring 数据和 mongodb 的新手。我有一个代表 JSON 模式的 JSON 对象,我需要使用 spring 数据将其存储在 mongodb 中。但 JSON Schema 的问题是 JSON Schema 的结构是动态的;例如,下面是两个结构完全不同的有效 JSON 模式。
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 10
},
"age": {
"type": "integer"
}
},
"required": [
"name",
"age"
]
}
{
"type": "array",
"items": {
"type": "object",
"properties": {
"abc": {
"type": "boolean"
},
"xyz": {
"$ref": "#/definitions/"
},
"asd": {
"type": "null"
}
},
"required": [
"abc",
"xyz"
]
}
}
如何定义 JAVA POJO 类,以便可以将上面的 JSON 与定义的类映射并将其存储在 mongodb 中。或者是否可以在 spring 中进行 CURD 操作而不将其映射到 POJO 类?
我建议使用Mongo模板并使用序列化和反序列化Gson/Jackson.
Mongo 模板具有 CRUD 方法,它采用集合名称和 DBObject 实体,这与直接使用 mongo java 驱动程序非常相似。
因此,您将拥有 json 有效负载并使用映射器库之一将它们转换为Map
.
就像是
反序列化
ObjectMapper mapper = new ObjectMapper();
TypeReference<HashMap<String,Object>> typeRef
= new TypeReference<HashMap<String,Object>>() {};
HashMap<String,Object> map = mapper.readValue(jsonpayload, typeRef);
DBObject
DBObject dbObject = new BasicDBObject(map);
Mongo模板
mongoTemplate.save(dbObject, "collectionname");
您可以对所有其他 CRUD 操作执行类似的操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)