zoukankan      html  css  js  c++  java
  • 转载:MongoDB C Driver中的BSON和JSON字符串的相互转换

    由于编译的C++版本的MongoDB库中的一些函数名,和其他第三方库(zmq、czmq冲突),时间仓促没时间去研究添加MongoDB的内部命名空间的一些方法,去避免冲突。而是选择了更加简单粗暴的方法,直接用MongoDB C Driver。
    记录一下BSON类型的一些使用方法。

    参考的是官网的参考文档:http://mongoc.org/libmongoc/current/tutorial.html#creating-bson-documents


    (1)利用JSON字符串来创建BSON

    #include <bson.h>
    
    int
    main (int   argc,
          char *argv[])
    {
       bson_error_t error;
       bson_t      *bson;
       char        *string;
    
       const char *json = "{"name": {"first":"Grace", "last":"Hopper"}}";
       bson = bson_new_from_json ((const uint8_t *)json, -1, &error);
    
       if (!bson) {
          fprintf (stderr, "%s
    ", error.message);
          return EXIT_FAILURE;
       }
    
       string = bson_as_canonical_extended_json (bson, NULL);
       printf ("%s
    ", string);
       bson_free (string);
    
       return 0;
    }

    亲测可用,就是利用bson_new_from_json函数,将const char *类型的json字符串生成bson。

    bson_t *
    bson_new_from_json (const uint8_t *data, ssize_t len, bson_error_t *error);

    该函数的官网参考地址:http://mongoc.org/libbson/current/bson_new_from_json.html


    (2)将bson转换成json字符串

    char *
    bson_as_canonical_extended_json (const bson_t *bson, size_t *length);

    上面的例子中有利用这个函数,将bson转换成char *类型的json字符串。先记录这么多,后续会把自己利用C语言版的mongoDb的一些增删查改的具体实现过程记录下来。

    bson API的官网地址:http://mongoc.org/libbson/current/api.html
    MongoDB C Driver 1.12.0的文档地址:http://mongoc.org/libmongoc/current/api.html

    关于char*如何利用QJSON生成json字符串,以及利用QJSon对json字符串进行解析,可以参考:
    https://blog.csdn.net/hp_cpp/article/details/80338116
    https://blog.csdn.net/hp_cpp/article/details/80208116


    ————————————————
    版权声明:本文为CSDN博主「hp_cpp」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/hp_cpp/article/details/82454584

  • 相关阅读:
    给JFinal添加 Sqlite 数据库支持
    超强、超详细Redis数据库入门教程
    HTML5实现多文件的上传示例代码
    JAVA 使用Dom4j 解析XML
    【VBA研究】Excel VBA利用ADODB访问数据库使用小结
    JFinal 部署在 Tomcat 下推荐方法
    Java WebService 简单实例
    关于XML的验证(DTD与XSD)一点实践
    基于机器学习的web异常检测
    30万奖金!还带你奔赴加拿大相约KDD!?阿里聚安全算法挑战赛带你飞起!
  • 原文地址:https://www.cnblogs.com/liweikuan/p/14458946.html
Copyright © 2011-2022 走看看