简介
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