Mongodb-java函数com.Mongodb.util.JSON.parse()
我现在使用java方法com.mongodb.util.JSON.parse(param)将我的JSON字符串转换为DBObject。我发现,在大多数情况下,例如,当JSON字符串中的键是简单类型(如string或int)时,JSON.parse()方法和终端都可以使用它。 例如:Mongodb-java函数com.Mongodb.util.JSON.parse(),java,json,mongodb,Java,Json,Mongodb,我现在使用java方法com.mongodb.util.JSON.parse(param)将我的JSON字符串转换为DBObject。我发现,在大多数情况下,例如,当JSON字符串中的键是简单类型(如string或int)时,JSON.parse()方法和终端都可以使用它。 例如: json string:{'times':8} 终端中的JSON.parse({'times':8})和db.collection.find({'times':8})都可以正常工作 但当我查询ISODate或_id
json string:{'times':8}
终端中的JSON.parse({'times':8})和db.collection.find({'times':8})都可以正常工作
但当我查询ISODate或_id时,情况就不同了:
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
json string 3:{'_id':ObjectId('1231daf213432414321431')}
json string 4:{'_id':{'$oid':'fadf234234sdfadfasdfa12'}}
json字符串3可以在终端中正常工作,但无法通过json.parse()方法进行解析。
相反,json字符串4可以由json.parse()方法解析,但不能在终端中使用。
我不知道这些差异的原因。您在Mongo Shell中使用的构造函数是JavaScript代码,显然不是您希望在Java应用程序中解析的严格JSON的一部分。这里要批评的一点是shell不支持像“$date”这样的东西(我刚才也测试了自己) 这就是我们讨论的例子