I'm making a small IOT project using the ESP8266 in which I make 2 API calls:
- api.openweathermap.org for weather data
- api.timezonedb.com
The request logic is the same for both calls, the only difference being how I parse the response string. The first response is parsed fine, while the other isn't.
- I print the String responses to Serial, they look fine.
- Tried both Dynamic and Static buffers to no avail.
- Making the request only to the second API, still not being parsed.
Parsing logic [works]:
StaticJsonBuffer<1000> jsonBuffer;
JsonObject& root = jsonBuffer.parseObject(response);
float raw = root[String("main")][String("temp")].as<float>();
Parsing logic: [does not work]
StaticJsonBuffer<500> jsonBuffer;
JsonObject& root = jsonBuffer.parseObject(response);
String data = root[String("formatted")].as<String>();
The response object looks like this:
{
"status": "OK",
"message": "",
"formatted": "2017-06-30 11:34:13"
}
Now I'm thinking, could the empty message be causing a bug? Or am I doing something wrong?