c++ nlohmann json - 如何测试嵌套对象是否存在或为空
c++ nlohmann json - how to test nested object is existent or empty
我有一个像这样的嵌套 Json:
string strJson = "{
"Header":
{"Version":"V0.00.01","ID":"1000","Name":"SetEnvValues"}
,
"Data":
{"Temp":0.00,"rH":0.00,"CO2":0.00,"O2":0.00 }
}";
现在我想测试是否存在元素"rH"。例如,如果我在 Data Objekt 中只有一个值 "Temp",我如何测试存在哪些值?这可能没有异常处理吗?
{
"Header":
{"Version":"V0.00.01","ID":"1000","Name":"SetEnvValues"}
,
"Data":
{"Temp":0.00 }
}
我用 count 试过了,但这似乎不适用于嵌套对象:
jsonReceivedEnvValues = json::parse(strJson);
int count = jsonReceivedEnvValues["Data"].count("Bla");
这个 returns 总是一个,我认为是因为它只测试 "Data" 对象,而不是更深的嵌套对象。
可以用jsonReceivedEnvValues["Data"].count("Bla")
来完成。确保您不会不小心创建了您要查找的对象;例如,jsonReceivedEnvValues["Data"]["Bla"].is_null();
在 ["Data"][=12= 中创建对象 ["Bla"] ]
我有一个像这样的嵌套 Json:
string strJson = "{
"Header":
{"Version":"V0.00.01","ID":"1000","Name":"SetEnvValues"}
,
"Data":
{"Temp":0.00,"rH":0.00,"CO2":0.00,"O2":0.00 }
}";
现在我想测试是否存在元素"rH"。例如,如果我在 Data Objekt 中只有一个值 "Temp",我如何测试存在哪些值?这可能没有异常处理吗?
{
"Header":
{"Version":"V0.00.01","ID":"1000","Name":"SetEnvValues"}
,
"Data":
{"Temp":0.00 }
}
我用 count 试过了,但这似乎不适用于嵌套对象:
jsonReceivedEnvValues = json::parse(strJson);
int count = jsonReceivedEnvValues["Data"].count("Bla");
这个 returns 总是一个,我认为是因为它只测试 "Data" 对象,而不是更深的嵌套对象。
可以用jsonReceivedEnvValues["Data"].count("Bla")
来完成。确保您不会不小心创建了您要查找的对象;例如,jsonReceivedEnvValues["Data"]["Bla"].is_null();
在 ["Data"][=12= 中创建对象 ["Bla"] ]