首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongodb- java函数com.mongodb.util.JSON.parse()

Mongodb- java函数com.mongodb.util.JSON.parse()
EN

Stack Overflow用户
提问于 2014-01-06 17:40:41
回答 1查看 741关注 0票数 2

我现在使用java方法com.mongodb.util.JSON.parse(参数)将json字符串转换为DBObject.我发现,在大多数情况下,例如,当json字符串中的键是简单类型(如string或int )时,JSON.parse()方法和终端都可以使用它。例如:

代码语言:javascript
复制
json string:{'times':8}

终端中的JSON.parse({'times':8})和db.collection.find({'times':8})都可以正常工作。

但是当我在ISODate或_id上查询时,事情就不一样了:

代码语言:javascript
复制
json string 1 :{'createDate':ISODate('2013-10-21T06:39:16.692Z')} 

json strign 2: {'createDate':{'$date':'2013-10-21T06:39:16.692Z'}}

json字符串1在终端中可以正常工作,但无法通过JSON.parse()方法进行解析。相反,json字符串2可以通过JSON.parse()方法解析,但不能在终端中使用。

同样的事情也发生在_id上。

代码语言:javascript
复制
json string 3:{'_id':ObjectId('1231daf213432414321431')} 

json string 4:{'_id':{'$oid':'fadf234234sdfadfasdfa12'}}

json字符串3在终端中可以正常工作,但无法通过JSON.parse()方法进行解析。相反,json字符串4可以通过JSON.parse()方法解析,但不能在终端中使用。我不知道这些差异的原因。

EN

回答 1

Stack Overflow用户

发布于 2014-01-06 19:22:07

Mongo Shell中使用的构造函数是JavaScript代码,显然不是您希望在Java应用程序中解析的严格JSON的一部分。这里要批评的一点是,shell不支持'$date‘之类的东西(因为我刚刚也测试了自己)。

这是例如讨论的here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20946991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档