gpt4 book ai didi

c++ - 如何使用 nlohmann/json.hpp 序列化 2 组

转载 作者:行者123 更新时间:2023-11-30 05:00:01 29 4
gpt4 key购买 nike

我有两组使用 boost 哈希实现的无序对 (X,Y),我想将它们转换为具有特殊格式的 Json 文件。

unordered_set<pair<int,int>> visited, cleaned

.我希望使用 nlohmann/json.hpp C++ 以 Json 格式以这种方式表示它们:

{
"visited": [
{
"X": 2,
"Y": 2
},
{
"X": 3,
"Y": 0
},
{
"X": 3,
"Y": 1
},
{
"X": 3,
"Y": 2
}
],
"cleaned": [
{
"X": 2,
"Y": 2
},
{
"X": 3,
"Y": 0
},
{
"X": 3,
"Y": 2
}
],
}

任何人都可以帮我处理这部分的 C++ 代码吗?我的代码是

for (auto it = visited.begin(); it != visited.end(); ++it)
{
j2["visited"]["X"]=it->second;
j2["visited"]["Y"] = it->first;
}
for (auto it = cleaned.begin(); it != cleaned.end(); ++it)
{
j2["cleaned"]["X"] = it->second;
j2["cleaned"]["Y"] = it->first;
}

它产生:

{
"cleaned": {
"X": 3,
"Y": 2
},
"visited": {
"X": 3,
"Y": 2
}
}

最佳答案

你想要的JSON格式包含数组。使用类似这样的东西来显式创建他们:

nlohmann::json arr;
for (auto it = visited.begin(); it != visited.end(); ++it) {
nlohmann::json o;
o["X"] = it->second;
o["Y"] = it->first;
arr.push_back(o);
}

j2["visited"] = arr;

第二部分也是如此。

关于c++ - 如何使用 nlohmann/json.hpp 序列化 2 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50973680/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com