MognoDB:不推荐使用JSON实用工具

时间:2018-09-22 10:21:40

标签: java mongodb spring-data-mongodb mongodb-java

到目前为止,我一直在使用以下代码,以便根据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'}]}]");

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

这是无效的JSON:

[{k: 'v'},{o: 'p'}]
  1. 属性名称应加引号。
  2. 报价应该是双引号(")而不是单引号(')。

此示例也无效:

[{'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类重新表示的数组。