我不知道您可以在项目中使用哪些依赖项,因此您可能不接受我的回答。
在 Qt5 中存在一些可以编写您想要的 JSON 的类。这是一个演示这个的小例子:
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonDocument>
#include <QDebug>
int main(int argc, char *argv[])
{
QJsonObject topQuery;
topQuery["objectType"] = QString("objects.Word");
QJsonObject parameters;
parameters["language"] = QString("en");
parameters["to"] = QString("ru");
parameters["rate"] = 0;
parameters["isInput"] = true;
topQuery["query"] = parameters;
QJsonObject sortParameter;
sortParameter["sortBy"] = QString("rate");
sortParameter["direction"] = QString("desc");
QJsonArray sortArray;
sortArray.append(sortParameter);
topQuery["sort"] = sortArray;
topQuery["limit"] = 10;
QJsonDocument document(topQuery);
qDebug() << document.toJson();
}
此代码的结果将是:
{
"limit": 10,
"objectType": "objects.Word",
"query": {
"isInput": true,
"language": "en",
"rate": 0,
"to": "ru"
},
"sort": [
{
"direction": "desc",
"sortBy": "rate"
}
]
}
对于 Qt4,还存在带有 simular api 的库:http: //qjson.sourceforge.net/。
之前我也在寻找没有依赖项的 C++ lib 来创建 json,比如 stl::map,但我只找到了一个 Qt 变体。