To put it another way this works:
int main() {
const char* json = R"({"doseCount":[{"date":"15 Aug 21","dosesTotal":"5,050,672","dosesToday":"65,634"},{"date":"14 Aug 21","dosesTotal":"4,985,038","dosesToday":"105,595"},{"date":"13 Aug 21","dosesTotal":"4,879,443","dosesToday":"106,331"},{"date":"12 Aug 21","dosesTotal":"4,773,112","dosesToday":"105,064"},{"date":"11 Aug 21","dosesTotal":"4,668,048","dosesToday":"106,592"},{"date":"10 Aug 21","dosesTotal":"4,561,456","dosesToday":"98,244"},{"date":"09 Aug 21","dosesTotal":"4,463,212","dosesToday":"25,483"}],"caseCount":[{"date":"15 Aug 21","casesTotal":"13,503","casesNew":"411"},{"date":"14 Aug 21","casesTotal":"13,092","casesNew":"463"},{"date":"13 Aug 21","casesTotal":"12,629","casesNew":"384"},{"date":"12 Aug 21","casesTotal":"12,245","casesNew":"343"},{"date":"11 Aug 21","casesTotal":"11,902","casesNew":"345"},{"date":"10 Aug 21","casesTotal":"11,557","casesNew":"356"},{"date":"09 Aug 21","casesTotal":"11,201","casesNew":"284"}],"calcs":{"percentageNSWVaccinated":"30.93%","averageDoses":"83923","daysUntil70percent":"76"}})";
DynamicJsonDocument doc(2048);
DeserializationError error = deserializeJson(doc, json);
std::cout << "DeserializationError -> " << error.c_str() << std::endl;
serializeJsonPretty(doc, std::cout);
return 0;
}
and returns:
Start
DeserializationError -> Ok
{
"doseCount": [
{
"date": "15 Aug 21",
"dosesTotal": "5,050,672",
"dosesToday": "65,634"
},
{
"date": "14 Aug 21",
"dosesTotal": "4,985,038",
"dosesToday": "105,595"
},
{
"date": "13 Aug 21",
"dosesTotal": "4,879,443",
"dosesToday": "106,331"
},
{
"date": "12 Aug 21",
"dosesTotal": "4,773,112",
"dosesToday": "105,064"
},
{
"date": "11 Aug 21",
"dosesTotal": "4,668,048",
"dosesToday": "106,592"
},
{
"date": "10 Aug 21",
"dosesTotal": "4,561,456",
"dosesToday": "98,244"
},
{
"date": "09 Aug 21",
"dosesTotal": "4,463,212",
"dosesToday": "25,483"
}
],
"caseCount": [
{
"date": "15 Aug 21",
"casesTotal": "13,503",
"casesNew": "411"
},
{
"date": "14 Aug 21",
"casesTotal": "13,092",
"casesNew": "463"
},
{
"date": "13 Aug 21",
"casesTotal": "12,629",
"casesNew": "384"
},
{
"date": "12 Aug 21",
"casesTotal": "12,245",
"casesNew": "343"
},
{
"date": "11 Aug 21",
"casesTotal": "11,902",
"casesNew": "345"
},
{
"date": "10 Aug 21",
"casesTotal": "11,557",
"casesNew": "356"
},
{
"date": "09 Aug 21",
"casesTotal": "11,201",
"casesNew": "284"
}
],
"calcs": {
"percentageNSWVaccinated": "30.93%",
"averageDoses": "83923",
"daysUntil70percent": "76"
}
}
0
Finish
I just don't know how to apply it to a MQTT request as per above, and then extract a value that I want (such as calcs_percentageNSWVaccinated) rather than a fixed JSON which I've manually fed in.