MognoDB: утилита JSON устарела - PullRequest
       20

MognoDB: утилита JSON устарела

0 голосов
/ 22 сентября 2018

До сих пор я использовал этот код для создания DBObject из строки json:

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, что я хочуget использует BasicDBObject.parse(...):

(DBObject)JSON.parse("[{'hola': 'adeu'}, {'departament': [{'ambit': 'just', 'name': 'ts'}]}]");

код будет (этот код вылетает):

(DBObject)BasicDBObject.parse("[{'hola': 'adeu'}, {'departament': [{'ambit': 'just', 'name': 'ts'}]}]");

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Вы можете использовать это, потому что нет метода BasicDBList :: parse

BsonArray parse = BsonArray.parse(json);
BasicDBList dbList = new BasicDBList();
dbList.addAll(parse);
DBObject dbObject = dbList;

BasicDBObject.parse (...) на самом деле предназначен для анализа объектов, а не массивов, которые представлены классом BasicDBList.

0 голосов
/ 22 сентября 2018

Это недопустимый JSON:

[{k: 'v'},{o: 'p'}]
  1. Вокруг имен атрибутов должны быть кавычки.
  2. Кавычки должны быть двойными ("), а не одинарными (').

Этот пример также недопустим:

[{'hola': 'adeu'}, {'departament': [{'ambit': 'just', 'name': 'ts'}]}]

Ссылки:

...