gpt4 book ai didi

java - 使用转义字符从单引号 JS 对象构造 Mongo DBObject?

转载 作者:行者123 更新时间:2023-12-02 06:04:51 33 4
gpt4 key购买 nike

这个问题与Java API/驱动程序有关,但也可能与其他语言中的Mongo接口(interface)有关。我是 Mongo 的新手,做了一些假设,所以如果我错了,请纠正我。我找到了很多文档,并且 references描述创建一个具有如下结构的 DBObject:

{
foo: "bar",
baz: {
x : { lorem: "Ipsum" },
y: { dolor : "sit amet" }
}
}

假设上述对象存在于名为 foo.json 的文件中(未更改) 。现在,据我了解,上面的内容是 JavaScript 对象文字(不是有效的 JSON)。正确的?然而,这是 Mongo 文档中引用为“JSON”的形式。

无论如何,在我的测试中,我正在阅读 foo.json文件转换成字符串并使用(我相信)相当标准的约定来解析它:

String fooString = readFile("foo.json");
Object o = com.mongodb.util.JSON.parse(fooString);
DBObject dbObj = (DBObject) o;

这工作得很好。现在,从 foo.json不是有效的 JSON,我假设我能够使用类似的 JavaScript 对象形式:

{
foo: 'bar',
baz: {
x : { lorem: 'Ipsum' },
y: { dolor : 'sit amet' }
}
}

好吧,好吧,这似乎有效。不过,奇怪的是,在 Mongo shell 中它似乎是用双引号存储的。由于这是有效的,我做出另一个假设,即我能够处理带有转义单引号的 JavaScript 对象形式:

{
foo: 'bar',
baz: {
x : { lorem: 'Ipsum. Isn\'t working' },
y: { dolor : 'sit amet' }
}
}

但是,当我尝试解析此对象(使用 com.mongodb.util.JSON.parse(fooString) )时,会出现 com.mongodb.util.JSONParseException被抛出。难道不应该支持所有 3 种形式吗?

注意:我正在使用 org.mongodb:mongo-java-driver:mongo-java-driver:2.11.2 。

预先感谢您提供的任何/所有帮助。

最佳答案

JSON.parse 不是一个成熟的 JSON 解析器,它不支持这样的转义字符。如果你想操作 JSON 和对象,你最好使用类似 MongoJack 的东西。从一开始就被设计成这样工作。

关于java - 使用转义字符从单引号 JS 对象构造 Mongo DBObject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22381306/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com