0

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.

dda
1,5951 gold badge12 silver badges17 bronze badges
asked Dec 19, 2017 at 9:50

1 Answer 1

2

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

answered Dec 19, 2017 at 10:38
1
  • Thanks Juraj, That helped.. I changed the HTTP version to 1.0 from 1.1 and it worked like a charm Commented Dec 19, 2017 at 10:43

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.