我使用MongoDB驱动程序Java API将BSON转换为JSON.我有这样的测试代码.
String input = "{ \"timestamp\" : 1486064586641 }";
org.bson.Document doc = org.bson.Document.parse(input);
System.out.println("input = " + input);
System.out.println("output = " + doc.toJson());
Run Code Online (Sandbox Code Playgroud)
输出是:
input = { "timestamp" : 1486064586641 }
output = { "timestamp" : { "$numberLong" : "1486064586641" } }
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以使输出看起来像输入?
小智 10
BSON Documnet的toJson方法仅支持输出到MongoDB Extended JSON(STRICT或SHELL格式).如果你想拥有常规的JSON,你可以使用com.mongodb.util.JSONclass:
String input = "{ \"timestamp\" : 1486064586641 }";
org.bson.Document doc = org.bson.Document.parse(input);
System.out.println("input = " + input);
System.out.println("output (SHELL) = " + doc.toJson(new JsonWriterSettings(JsonMode.SHELL)));
System.out.println("output (STRICT) = " + doc.toJson(new JsonWriterSettings(JsonMode.STRICT)));
System.out.println("output (JSON) = " + com.mongodb.util.JSON.serialize(doc));
Run Code Online (Sandbox Code Playgroud)
这将生成以下输出:
input = { "timestamp" : 1486064586641 }
output (SHELL) = { "timestamp" : NumberLong("1486064586641") }
output (STRICT) = { "timestamp" : { "$numberLong" : "1486064586641" } }
output (JSON) = { "timestamp" : 1486064586641}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7152 次 |
| 最近记录: |