Обрезать двойные кавычки в json, полученные от mongoDB - PullRequest
1 голос
/ 08 сентября 2011

Я впервые использую JSON и MongoDb .. Поэтому, когда я вставляю в Mongodb и получаю результат, я получаю значение как

{ "_id" : { "$oid" : "4e67eb04b475e7c236a0c82c"} , "database" : "mkyongDB" , "table" : "hosting" , "detail" : { "records" : 99 , "index" : "vps_index1" , "active" : "true"}}

Когда я извлекаю значение "базы данных", я получаю значение как

"mykongDB"

При отображении двойных кавычек. И мне нужно удалять двойные кавычки каждый раз, когда я извлекаю значение из JSON. Это поведение JSON или MongoDB или я что-то упустил ..

Мой код для получения значения с использованием драйвера Монго в Java

public DBObject find(String key,String value){
    BasicDBObject query = new BasicDBObject(key,value);
    return collection.findOne(query);
}

Способ извлечения значения из JSON:

    DBObject dboject = client.find("database", "mkyongDB");
    System.out.println(dboject);
    JsonNode node =  mapper.readTree(dboject.toString());
    JsonNode innerNode = ((ObjectNode)node).get("_id");
    System.out.println(innerNode);
     String objectId = innerNode.get("$oid").toString();

Я использую анализатор JSON JSON

что не так? Я не хочу обрабатывать удаление двойных кавычек каждый раз, когда извлекаю значение.

Спасибо

1 Ответ

5 голосов
/ 08 сентября 2011

Не похоже, что двойные кавычки хранятся в поле Mongo как часть строки.Если бы это было так, выходные данные JSON выглядели бы примерно так:

{ "database" : "\"mkyongDB\"" }

Итак, это, вероятно, результат анализа JSON.

Десериализует ли драйвер Java JSON вкласс DBObject?Может быть, вы получите доступ к полю, вызвав что-то вроде dboject.get("database") и приведя результат к строке?

Также стоит проверить Java Language Center , есть множество ссылок на учебники,библиотеки и фреймворки для отображения POJO, которые могут упростить жизнь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...