到目前为止,我一直在使用以下代码,以便根据json字符串创建DBObject
:
DBObject metadataObject = (DBObject)JSON.parse(jsonString);
但是,不建议使用com.mongodb.util.JSON
,建议改用BasicDBObject.parse
。
DBObject metadataObject = (DBObject)BasicDBObject.parse(jsonString);
尽管如此,当jsonString
是一个数组(例如"[{k: 'v'},{o: 'p'}]"
时,它会引发异常。JSON.parse
可以正常工作。
o,我想使用BasicDBObject.parse(...)
:
(DBObject)JSON.parse("[{'hola': 'adeu'}, {'departament': [{'ambit': 'just', 'name': 'ts'}]}]");
代码将是(此代码崩溃):
(DBObject)BasicDBObject.parse("[{'hola': 'adeu'}, {'departament': [{'ambit': 'just', 'name': 'ts'}]}]");
有什么想法吗?
答案 0 :(得分:1)
这是无效的JSON:
[{k: 'v'},{o: 'p'}]
"
)而不是单引号('
)。此示例也无效:
[{'hola': 'adeu'}, {'departament': [{'ambit': 'just', 'name': 'ts'}]}]
参考文献:
答案 1 :(得分:1)
因为没有BasicDBList :: parse方法,所以可以使用它
BsonArray parse = BsonArray.parse(json);
BasicDBList dbList = new BasicDBList();
dbList.addAll(parse);
DBObject dbObject = dbList;
BasicDBObject.parse(...)实际上用于解析对象,而不是由BasicDBList类重新表示的数组。