我第一次使用JSON和MongoDb ..所以当我插入Mongodb并检索结果时,我得到的值为
{ "_id" : { "$oid" : "4e67eb04b475e7c236a0c82c"} , "database" : "mkyongDB" , "table" : "hosting" , "detail" : { "records" : 99 , "index" : "vps_index1" , "active" : "true"}}
Run Code Online (Sandbox Code Playgroud)
当我取消"数据库"的值时,我得到的值为
"mykongDB"
显示双引号.每次我从JSON中提取值时,我都必须删除双引号.这是JSON或MongoDB的行为方式还是我错过了什么......
我在java中使用mongo驱动程序检索值的代码
public DBObject find(String key,String value){
BasicDBObject query = new BasicDBObject(key,value);
return collection.findOne(query);
}
Run Code Online (Sandbox Code Playgroud)
我从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();
Run Code Online (Sandbox Code Playgroud)
我正在使用jackson JSON解析器
怎么了 ?每次我提取值时,我都不想处理删除双引号.
谢谢
它看起来不像双引号作为字符串的一部分存储在Mongo字段中.如果是,JSON输出将如下所示:
{ "database" : "\"mkyongDB\"" }
Run Code Online (Sandbox Code Playgroud)
所以,这可能是JSON如何被解析的结果.
Java驱动程序是否将JSON反序列化为DBObject类?也许您通过调用类似的东西dboject.get("database")并将结果转换为字符串来访问该字段?
它还值得一看Java语言中心,有很多指向POJO映射的教程,库和框架的链接,可以让生活更轻松.
| 归档时间: |
|
| 查看次数: |
3061 次 |
| 最近记录: |