Skip to main content
2 of 3
added 209 characters in body

Possible ArduinoJson bug on ESP8266?

I'm making a small IOT project using the ESP8266 in which I make 2 API calls:

  1. api.openweathermap.org for weather data
  2. 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.

  1. I print the String responses to Serial, they look fine.
  2. Tried both Dynamic and Static buffers to no avail.
  3. 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?