У меня есть JSON Файл, подобный этому
{
"Person":[
{
"name":"Frank",
"age":69,
"amount_of_jobs":9,
"years_worked":6,
"unemployed":true,
"job_seeking":false
},
{
"name":"Tom",
"age":23,
"amount_of_jobs":2,
"years_worked":6,
"unemployed":false,
"job_seeking":false
},
{
"name":"Mike",
"age":31,
"amount_of_jobs":5,
"years_worked":12,
"unemployed":false,
"job_seeking":false
},
{
"name":"Herb",
"age":45,
"amount_of_jobs":7,
"years_worked":29,
"unemployed":false,
"job_seeking":true
}
],
"Companies":[
{
"name":"Slave Inc"
},
{
"name":"Some LLC"
},
{
"name":"Other PTY LTD"
},
{
"name":"A company"
}
]
}
, и я хотел бы проверить, есть ли в файле правильные ключи.
Мне удалось проверить, Person
и Companies
существует с этим фрагментом кода
if (!document.HasMember("Person") || (!document.HasMember("Companies")))
{
std::cout << "KEY NOT FOUND" << std::endl;
file.close();
return false;
}
else
{
std::cout << "ALL GOOD" << std::endl;
}
Но когда я пытаюсь проверить, существуют ли name
или years_worked
(которые являются вложенными элементами), это не работает.
Я пробовал:
if (!document.HasMember("name") || (!document.HasMember("years_worked")))
{
std::cout << "KEY NOT FOUND" << std::endl;
file.close();
return false;
}
else
{
std::cout << "ALL GOOD" << std::endl;
}
и
if (!document["Person"].HasMember("name") || (!document["Person"].HasMember("years_worked")))
{
std::cout << "KEY NOT FOUND" << std::endl;
file.close();
return false;
}
else
{
std::cout << "ALL GOOD" << std::endl;
}
, и все, что я получаю, это:
Утверждение не удалось: (IsObject ())
Как я могу решить эту проблему?
Заранее спасибо!