使用 nlohmann 在 cpp 中输出 Json 数组
Output Json Array in cpp using nlohmann
我使用以下代码使用 nlohmann 库创建了 json 个对象:
nlohmann::json dataJson;
auto data = dataJson.array();
data[0]["message"] = "String";
data[0]["timestamp"] = 123;
输出为
{"message":"String", "timestamp": 123}
但我希望输出为
[{"message":"String", "timestamp": 123}]
在数组中以便能够拥有多条消息。
所以我想问一下在数组中添加值的最佳方法是什么,因为当我打印它时,数组的输出为空。
我是 cpp 的新人,所以我想为这个问题道歉,如果被认为太简单了,但我们将不胜感激。
nlohmann_json 是一个非常有用的库,但它确实有一些怪癖。我发现最好明确说明意图。
Lambda 在这里非常有用:
#include <iostream>
#include <nlohmann/json.hpp>
int main() {
auto make_object = []
{
auto result = nlohmann::json::object();
result["message"] = "String";
result["timestamp"] = 123;
return result;
};
auto make_array = [&make_object]
{
auto result = nlohmann::json::array();
result.push_back(make_object());
return result;
};
auto data = make_array();
std::cout << data.dump() << std::endl;
return 0;
}
预期输出:
[{"message":"String","timestamp":123}]
我使用以下代码使用 nlohmann 库创建了 json 个对象:
nlohmann::json dataJson;
auto data = dataJson.array();
data[0]["message"] = "String";
data[0]["timestamp"] = 123;
输出为
{"message":"String", "timestamp": 123}
但我希望输出为
[{"message":"String", "timestamp": 123}]
在数组中以便能够拥有多条消息。
所以我想问一下在数组中添加值的最佳方法是什么,因为当我打印它时,数组的输出为空。
我是 cpp 的新人,所以我想为这个问题道歉,如果被认为太简单了,但我们将不胜感激。
nlohmann_json 是一个非常有用的库,但它确实有一些怪癖。我发现最好明确说明意图。
Lambda 在这里非常有用:
#include <iostream>
#include <nlohmann/json.hpp>
int main() {
auto make_object = []
{
auto result = nlohmann::json::object();
result["message"] = "String";
result["timestamp"] = 123;
return result;
};
auto make_array = [&make_object]
{
auto result = nlohmann::json::array();
result.push_back(make_object());
return result;
};
auto data = make_array();
std::cout << data.dump() << std::endl;
return 0;
}
预期输出:
[{"message":"String","timestamp":123}]