この質問は Java API / ドライバーに関連していますが、他の言語での Mongo とのインターフェースにも関連している可能性があります。私はMongoを初めて使用し、いくつかの仮定を行っているため、間違っている場合は修正してください。私が見つけている多くのドキュメントと参考文献は、次のような構造を指定して 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 シェルでは、二重引用符で格納されているように見えます。それが機能するので、エスケープされた単一引用符を使用して JavaScript オブジェクトフォームを処理できるという別の仮定を立てています。
{
foo: 'bar',
baz: {
x : { lorem: 'Ipsum. Isn\'t working' },
y: { dolor : 'sit amet' }
}
}
ただし、このオブジェクトを ( を使用してcom.mongodb.util.JSON.parse(fooString)
) 解析しようとすると、 acom.mongodb.util.JSONParseException
がスローされます。3 つの形式すべてをサポートするべきではありませんか?
注: org.mongodb:mongo-java-driver:mongo-java-driver:2.11.2 を使用しています。
あらゆる/すべての助けを前もって感謝します。