Loading

MongoDB:JSON和BSON

一、BSON#

在MongoDB中数据的存储格式是:BSON,这是一种二进制格式的JSON变种。

MongoDB中操作数据也是基于BSON,涉及的函数库:libbson.h

二、JSON和BSON的转换#

🔸 JSON转换成BSON

单步拼接方式:

#include <mongoc/mongoc.h>
#include <bson/bson.h>

int main(int argc, char *argv[])
{
    bson_t *query= NULL;
    char *str = NULL;
    query = BCON_NEW (
                    "name", BCON_UTF8("ZhangSan"),
                    "age", BCON_INT32 (19),
    		    "timestamp_string", BCON_REGEX("^2022-11-09","i")
    		    );
    str = bson_as_json(query, NULL);
    printf("%s\n",str);
    bson_free(str);
    bson_destroy(query);
    return 0;
} 

运行结果:

整体转换方式:

#include <mongoc/mongoc.h>
#include <bson/bson.h>

int main(int argc, char *argv[])
{
	bson_t *query = NULL;
	bson_error_t error;
	char *str = NULL;
	char message[100] = {0};
	char json[100] = {"{\"name\":\"ZhangSan\",\"age\":19,\"sex\":\"male\"}"};
	if (!(query = bson_new_from_json((unsigned char *)json, -1, &error)))
	{
		printf("%s\n", error.message);
	}
	else
	{
		str = bson_as_json(query, NULL);
		printf("%s\n", str);
		bson_free(str);
	}
	bson_destroy(query);
        return 0;
} 

运行结果;

🔸 BSON转换成JSON

  char *str = NULL;
  bson_t *query = NULL;
  str = bson_as_json(query, NULL); // 该函数进行转换
  printf("%s\n", str);
  bson_free(str);

作者:caojun97

出处:https://www.cnblogs.com/caojun97/p/17088024.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   eiSouthBoy  阅读(450)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu