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"] ]