如何从json数据中获取Date对象

How to get a Date object from json data

本文关键字:获取 Date 对象 数据 json      更新时间:2023-09-26

我只是想解析一个Json文档,它的字段Date如下:"死亡":使用的日期("2007-03-17T04:00Z")

com.mongodb.util.JSON.parse(document)

遇到值Date时会出现异常。有什么帮助吗?

这里的关键是导出的数据都做错了。可能有人从MongoDB shell运行了一些东西,并将控制台输出重定向到一个文件。这基本上就是"做错了"。

有一个名为MongoDB Extended JSON的概念,事实上,它已经在其他一些领域得到了应用,尤其是EJSON项目。这样做的目的是确保任何导出的JSON都将"类型"信息保存到BSON类型标识符(或其他对象类型,以EJSON为目的),以便类似的"扩展JSON"解析器可以将对象"重新构造"为其预期形式。

对于"日期"对象,预期的JSON表示如下:

{ "death": { "$date": "2007-03-17T04:00:00Z" } }

由于com.mongodb.util.JSON.parse是在了解扩展JSON规范的情况下启用的,因此任何此类JSON构造都将根据解析的数据构造正确的日期对象。

所以你现在拥有的只是一个"字符串"。事实上,如果不是这样"引用"的话:

´ { "death" : "Date('2007-03-17T04:00:00Z')" }

事实上,它甚至不是有效的JSON,甚至需要被操纵到正确的形式,即使是基本的JSON解析器也不会出错。无论如何,结果仍然只是一个"字符串",因此您需要为数字数据创建一个正则表达式匹配,然后将其传递给日期对象构造。

显然,这里"最好"的做法是修复数据的"导出"源,以便以正确的扩展方式将数据解析为JSON。然后,您正在使用的解析器将执行正确的操作。