スポンサーリンク

C++でnlohmann::json (書き込み)

nlohmann::jsonによる書き込みを行う。書き込み順は記述順と同じでなくなる点に注意。

#include <iostream>

#include <nlohmann/json.hpp>
#include <fstream>

int main()
{

    nlohmann::json jsondata;

    jsondata["information"] = {
        {"Name", "Tarou"},
        {"Age", 18},
        {"weight", 60.5}
	};

    nlohmann::json& data = jsondata["data"];
    data["dates"].push_back("2023-10-01T12:00:00+09:00");
    data["dates"].push_back("2023-10-02T12:00:00+09:00");

    nlohmann::json countries = {
        {{"id", 1}, {"name", "Russia"}},
        {{"id", 2}, {"name", "France"}}
	};
    data["countries"] = countries;
    // JSONデータをファイルに保存
    std::string filename = R"(C:\test\data\data2.json)";
    std::ofstream file(filename);
    if (file.is_open()) {
        file << jsondata.dump(2); // インデントのスペース数
        file.close();
        std::cout << "JSON data saved to " << filename << std::endl;
    } else {
        std::cerr << "Failed to open file for writing: " << filename << std::endl;
    }
    return 0;
}

書き込み結果

{
  "data": {
    "countries": [
      {
        "id": 1,
        "name": "Russia"
      },
      {
        "id": 2,
        "name": "France"
      }
    ],
    "dates": [
      "2023-10-01T12:00:00+09:00",
      "2023-10-02T12:00:00+09:00"
    ]
  },
  "information": {
    "Age": 18,
    "Name": "Tarou",
    "weight": 60.5
  }
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: