MongoDB:JSON 实用程序已弃用

MognoDB: JSON util is deprecated

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

有什么想法吗?

这是无效的JSON:

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

这个例子也是无效的:

[{'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 class.

所代表的数组