QT : Bson\Json互转

简介

Bson 介绍

(1)官网 BSON (Binary JSON) Serialization

(2)百度百科 BSON_百度百科

Json介绍

菜鸟教程 JSON 教程 | 菜鸟教程

转换

QT /CPP

cpp 复制代码
#include <QCoreApplication>
#include <QJsonDocument>
#include <QFile>
#include <QDebug>
 
#include "bson/Value.h"
 
BSON::Value gbsonDoc = BSON::Object{{"undefined", BSON::Value{}},
                               {"int32", (BSON::int32)1},
                               {"int64", (BSON::int64)1},
                               {"double", 3.14},
                               {"true", true},
                               {"false", false},
                               {"string", "foobar"},
                               {"datetime", std::chrono::milliseconds{123}},
                               {"object", BSON::Object{{"foo", "bar"}}},
                               {"array", BSON::Array{1, 2, 3}}};
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
    std::string bsonString = gbsonDoc.toBSON(); // bson结构->bson字符串
    BSON::Value bsonDoc = BSON::Value::fromBSON(bsonString); // bson字符串->bson结构
 
    QString jsonString = QString::fromLocal8Bit(gbsonDoc.toJSON().c_str()); // bson结构->json字符串
    QJsonDocument jsonDoc = QJsonDocument::fromJson(QByteArray::fromStdString(bsonDoc.toJSON()));  // bson结构->QJsonDocument
 
    BSON::Value bsonDocfromJson = BSON::Value::fromJSON(std::string(const_cast<const char *>(jsonString.toLocal8Bit().constData()))); // json字符串->bson结构
 
 
    qDebug() << "Bson String: " << QByteArray::fromStdString(bsonDoc.toJSON());
    qDebug() << "Json String: " << jsonString;
    qDebug() << "Json Document: " << jsonDoc;
 
    return a.exec();
}

​参考:

https://github.com/trusch/libbson

资源:

QT 例子代码 - https://download.csdn.net/download/halo_hsuh/12284550

相关推荐
小年糕是糕手几秒前
【C/C++刷题集】顺序表、vector、链表、list核心精讲
c语言·开发语言·数据结构·c++·算法·leetcode·蓝桥杯
会编程的土豆3 分钟前
从 C/C++ 视角快速上手 Go 语言:核心差异与避坑指南
c语言·开发语言·c++·后端·golang
小白学大数据4 分钟前
Python 3.7 高并发爬虫:接口请求与页面解析并发处理
开发语言·爬虫·python
我命由我123455 分钟前
Kotlin 开发 - 双冒号操作符(引用顶层函数、引用成员函数、引用构造函数、引用属性、引用类)
android·java·开发语言·kotlin·android studio·android jetpack·android-studio
Jacky-0086 分钟前
Python pywin32 outlook邮箱
开发语言·python·outlook
minji...6 分钟前
Linux 线程同步与互斥(六) 线程安全与重入问题,死锁,线程done
linux·运维·开发语言·数据库·c++·算法·安全
2401_873479409 分钟前
遭遇DDoS攻击后如何快速分析攻击源?用IP查询+离线库定位异常IP
服务器·开发语言·tcp/ip·php
Gofarlic_oms18 小时前
利用API实现ANSYS许可证管理自动化集成
运维·服务器·开发语言·matlab·自动化·负载均衡
AI+程序员在路上9 小时前
VS Code 完全使用指南:下载、安装、核心功能与 内置AI 编程助手实战
开发语言·人工智能·windows·开源
invicinble9 小时前
这里对java的知识体系做一个全域的介绍
java·开发语言·python