【问题标题】:BSON library for java? [closed]java的BSON库? [关闭]
【发布时间】:2010-09-07 06:49:06
【问题描述】:

我们在 java http://blog.locut.us/main/2009/10/14/which-is-the-best-java-json-library.html 中对 JSON 有很好的支持,但是 BSON 呢。

您知道哪些库为 java 提供 BSON 支持? 它在运行时显然应该是高效的。

【问题讨论】:

    标签: java mongodb bson


    【解决方案1】:

    您可以使用 Java 的 MongoDB 驱动程序来存储 BSON 对象,然后将其转换为 String,然后您可以使用 JSONObject 进行包装。

    例如,我将创建一个常规文档:

    BasicDBObject obj = new BasicDBObject();
    obj.put("name", "Matt");
    obj.put("date", new Date());
    

    然后,要获得对象的String 表示,只需调用:

    String bsonString = obj.toString();
    

    用JSONObject 包装它并获取日期属性,它应该以符合 BSON 的格式返回它。

    JSONObject newObject = new JSONObject(bsonString);
    System.out.println(newObject.get("date"));
    

    结果输出类似于:

    {"$date":"2012-08-10T05:22:53.872Z"}
    

    【讨论】:

      【解决方案2】:

      BSON site 指向this

      如果您想在 MongoDB 中使用它,请查看 this example

      【讨论】:

      • 猜猜我可以从 Mongo 获取编码部分并将其作为外部库。希望得到更“成熟”的东西,谢谢你的提示。
      • 说实话,mongoDB 的例子有点迟钝!为什么不能像json转换那么简单?
      • 答案链接失效
      【解决方案3】:

      为了在 MongoDB 中获取模型,我们首先使用 google gson 将模型转换为 JSON,然后使用JSON util parse method from MongoDB 将生成的 JSON 字符串解析为可以放入 MongoDB 的 DBObject。老实说,我不知道性能。

      【讨论】:

      • 这种方法的问题是你会丢失一些数据类型(比如日期)。
      【解决方案4】:

      还有ebson。我没试过……

      【讨论】:

        【解决方案5】:

        还有一个相当新的BSON4Jackson 项目,它允许使用Jackson 处理BSON 数据。这意味着完整的数据绑定(到/从 POJO)、树模型,甚至流式(增量)读/写,都可以使用 BSON 格式完成。

        【讨论】:

        • 我讨厌杰克逊。它的 API 只是尖叫“过于复杂”。 Crockford 的图书馆是最好的,也是最小的。
        • 您有权发表自己的错误意见。 org.json 的参考实现之类的玩具库可能非常适合您。
        猜你喜欢
        • 1970-01-01
        • 2011-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-25
        • 2010-10-26
        • 2011-03-25
        • 1970-01-01
        相关资源
        最近更新 更多