首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Mongo Java客户端将BSON Int64编码为JSON字符串

如何使用Mongo Java客户端将BSON Int64编码为JSON字符串
EN

Stack Overflow用户
提问于 2017-02-25 01:04:44
回答 2查看 1.6K关注 0票数 3

当为包含Int64 (Java long)值的文档调用org.bson.Document.toJson()时,它使用Mongo的"$numberLong“编码进行编码。例如下面的代码:

代码语言:javascript
运行
复制
    Document parse = Document.parse("{}");
    parse.put("version", 1L);
    String json = parse.toJson();

生成以下JSON:

代码语言:javascript
运行
复制
    { "version" : { "$numberLong" : "1" } }

为了使其更具互操作性,我想将其编码为字符串,即如下所示:

代码语言:javascript
运行
复制
    { "version" : "1" }

我已经阅读了wiki on codecsextended JSON以及大部分的Javadoc,但是我终生都想不出如何注册一个自定义的JSON序列化器。即使是默认的org.bson.codecs.LongCodec似乎也不是引入$numberLong语法的那个。

显然,一个简单的设置(例如,等同于Gson的setLongSerializationPolicy(LongSerializationPolicy.STRING))将是理想的,但任何方法都将感谢这项工作。

EN

回答 2

Stack Overflow用户

发布于 2017-08-07 21:00:12

为了获得严格的JSON,您可以使用com.mongodb.util.JSON和方法serialize()

代码语言:javascript
运行
复制
JSON.serialize(parse)

或者,您可以使用一些JSON库。例如GSON

代码语言:javascript
运行
复制
Gson gson = new Gson();
String gsonString = gson.toJson(parse);
票数 0
EN

Stack Overflow用户

发布于 2021-03-25 13:48:47

使用json.simple

JSONObject.toJSONString(解析)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42444340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档