如何在数组中添加对象成员?
How to add object member in array?
我有 json 个这样的文件。
使用 nlohmann。
{"Fans": [
{
"MemberID": "0",
"Name": "Fan 0 ABC",
"Reading": 30
},
{
"MemberID": "1",
"Name": "Fan 1 ABC",
"Reading": 40,
"Unit": "RPM" // add object
}
]
}
我想找到 "Fan 1" 然后添加新对象。
我可以找到Fans[]的索引。
但是我不知道怎么添加对象
nlohmann::json &tempArray = Resp->res.jsonValue[Fans];
for(auto &x : tempArray.items())
{
auto &Value = x.value();
auto iter = Value.find("Name");
if(iter != Value.end())
{
std::string str = iter.value();
if(str.find("Fan 1", 0) != std::string::npos)
{
// add object?
}
}
}
我不得不重组您的代码以生成 MCVE,但您可以简单地使用 operator[]
将新字段分配给对象:
void modifyJson(json & j) {
json &tempArray = j["Fans"];
for(auto &x : tempArray)
{
auto iter = x.find("Name");
if(iter != x.end())
{
std::string str = iter.value();
if(str.find("Fan 1", 0) != std::string::npos)
{
x["Unit"] = "RPM";
return;
}
}
}
}
我有 json 个这样的文件。
使用 nlohmann。
{"Fans": [
{
"MemberID": "0",
"Name": "Fan 0 ABC",
"Reading": 30
},
{
"MemberID": "1",
"Name": "Fan 1 ABC",
"Reading": 40,
"Unit": "RPM" // add object
}
]
}
我想找到 "Fan 1" 然后添加新对象。
我可以找到Fans[]的索引。
但是我不知道怎么添加对象
nlohmann::json &tempArray = Resp->res.jsonValue[Fans];
for(auto &x : tempArray.items())
{
auto &Value = x.value();
auto iter = Value.find("Name");
if(iter != Value.end())
{
std::string str = iter.value();
if(str.find("Fan 1", 0) != std::string::npos)
{
// add object?
}
}
}
我不得不重组您的代码以生成 MCVE,但您可以简单地使用 operator[]
将新字段分配给对象:
void modifyJson(json & j) {
json &tempArray = j["Fans"];
for(auto &x : tempArray)
{
auto iter = x.find("Name");
if(iter != x.end())
{
std::string str = iter.value();
if(str.find("Fan 1", 0) != std::string::npos)
{
x["Unit"] = "RPM";
return;
}
}
}
}