Java 将Mongo更新JSON字符串解析为DBObject

Java 将Mongo更新JSON字符串解析为DBObject,java,json,mongodb,mongo-java-driver,Java,Json,Mongodb,Mongo Java Driver,我试图在运行时构造Mongo查询,以便将JSON字符串解析为DBObject 我尝试了以下方法: String then = "{$set : {"JobDoc.DataElementsRollup.ConsolidatedONET.#text.$" : "Waltham", "JobDoc.DataElementsRollup.ConsolidatedONET.#text.$" : "MA", "JobDoc.DataElementsRollup.ConsolidatedONET.#text.

我试图在运行时构造
Mongo查询
,以便将
JSON字符串
解析为
DBObject

我尝试了以下方法:

String then = "{$set : {"JobDoc.DataElementsRollup.ConsolidatedONET.#text.$" : "Waltham", "JobDoc.DataElementsRollup.ConsolidatedONET.#text.$" : "MA", "JobDoc.DataElementsRollup.ConsolidatedONET.#text.$" : "Middlesex", "JobDoc.DataElementsRollup.ConsolidatedONET.#text.$" : "USA", "JobDoc.DataElementsRollup.ConsolidatedONET.#text.$" : "02451", "JobDoc.DataElementsRollup.ConsolidatedONET.#text.$" : "42.398708",  "JobDoc.DataElementsRollup.ConsolidatedONET.#text.$" : "-71.259216", "JobDoc.DataElementsRollup.ConsolidatedONET.#text.$" : "71650: Metropolitan NECTA |715: Combined NECTA", "JobDoc.DataElementsRollup.ConsolidatedONET.#text.$" : "71654: NECTA Division", "JobDoc.DataElementsRollup.ConsolidatedONET.#text.$" : "DV257165|MT257165", "JobDoc.DataElementsRollup.ConsolidatedONET.#text.$" : "781"}}"

DBObject thenQuery = (DBObject) JSON.parse(then);
结果:

{ "$set" : { "JobDoc.DataElementsRollup.ConsolidatedONET.#text.$" : "781"}}

如果我出错了,有人能对我进行排序吗?还有人能建议解决方法吗?

您在对象中多次使用相同的属性名,这就是您获得输出的原因

属性名称
在对象内部应该是唯一的


您不应在查询中多次使用“JobDoc.DataElementsRollup.ConsolidatedONET.#text.$”。

谢谢@Shrabanee。