C++ 使用nlohmann在cpp中输出Json数组

C++ 使用nlohmann在cpp中输出Json数组,c++,arrays,json,nlohmann-json,C++,Arrays,Json,Nlohmann Json,我使用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}] 在一个数组中,以便能够

我使用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是一个非常有用的库,但它确实有一些怪癖。我发现最好是明确表达意图

Lambdas在这里非常有用:

#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;
}

如何“输出”结果?我无法复制你的问题。如果我使用
std::cout转储您的确切代码,那么实际上是的,您是对的,因为我试图将其放入循环中,对不起。但理查德也帮了很多忙。谢谢
[{"message":"String","timestamp":123}]