I have created an API in Ruby on Rails and it send the following JSON response:
{"sun_position":{"altitude":"32.46","azimuth":"223.93"}}
I'm able to successfully hit the API and store the response. But when I try to parse it and store data it gives me an error. I have used the Arduino JSON library.
The code for parsing the JSON is as follows:
bool parseSunPosData(char* content, SunPosData* sunPos) {
StaticJsonBuffer<JSONBUFFER_SIZE> jsonBuffer;
JsonObject& root = jsonBuffer.parseObject(content);
Serial.println("In parse fuc");
Serial.println(content);
Serial.println("==============");
if (!root.success()) {
Serial.println("JSON parsing failed!");
return false;
}
And the output on the serial monitor is as follows:
In parse fuc 38
{"sun_position":{"altitude":"32.46","azimuth":"223.93"}} 0
==============
JSON parsing failed! Disconnect
My guess is it can't parse the data due to the numbers 38 and zero printing... I don't know what that is and what it is.
PS: New to Arduino coding.
1 Answer 1
you have the HTTP chunked transfer encoding numbers in the content. 38 is the length of the body and it is on the first line of the HTTP body and 0 marks the end. maybe try using ArduinoHttpClient library for HTTP
-
Thanks Juraj, That helped.. I changed the HTTP version to 1.0 from 1.1 and it worked like a charmMihir Joshi– Mihir Joshi2017年12月19日 10:43:14 +00:00Commented Dec 19, 2017 at 10:43