到目前为止,我一直在使用以下代码,以便从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'}]}]");
有任何想法吗?
最佳答案
您可以使用它,因为没有BasicDBList :: parse方法
BsonArray parse = BsonArray.parse(json);
BasicDBList dbList = new BasicDBList();
dbList.addAll(parse);
DBObject dbObject = dbList;
BasicDBObject.parse(...)实际上用于解析对象,而不是解析由BasicDBList类重新呈现的数组。