1

I am learning the ArduinoJson.h library and creating jsonOject:

JsonObject& prepareResponse(JsonBuffer& jsonBuffer) {
 JsonObject& root = jsonBuffer.createObject();
 JsonArray& tempValues = root.createNestedArray("temperature");
 tempValues.add(t);
 JsonArray& humiValues = root.createNestedArray("humidity");
 humiValues.add(h);
 JsonArray& dewpValues = root.createNestedArray("dewpoint");
 dewpValues.add(pfDew);
 JsonArray& EsPvValues = root.createNestedArray("systemv");
 EsPvValues.add(pfVcc / 1000, 3);
 return root;
}

As per the example given here. However since I am using an ESP8266WebServer to create a server object from ESP8266WebServer.h, I cannot pass a JsonObject to server.send(.....).

no matching function for call to 'ESP8266WebServer::send(int, const char [10], ArduinoJson::JsonObject&)'

void outputJson() {
 StaticJsonBuffer<500> jsonBuffer;
 JsonObject& json = prepareResponse(jsonBuffer);
 writeResponse(client, json);
 server.send ( 200, "text/json", json );
}
void writeResponse(WiFiClient& clnt, JsonObject& json) {
 clnt.println("HTTP/1.1 200 OK");
 clnt.println("Content-Type: application/json");
 clnt.println("Access-Control-Allow-Origin: *");
 clnt.println("Connection: close");
 clnt.println();
 json.prettyPrintTo(clnt);
}
dda
1,5951 gold badge12 silver badges17 bronze badges
asked Nov 23, 2017 at 15:55

1 Answer 1

1

As far as I know, the only way is to serialize the JsonObject to a String:

String createJsonResponse() {
 StaticJsonBuffer<500> jsonBuffer;
 JsonObject &root = jsonBuffer.createObject();
 JsonArray &tempValues = root.createNestedArray("temperature");
 tempValues.add(t);
 JsonArray &humiValues = root.createNestedArray("humidity");
 humiValues.add(h);
 JsonArray &dewpValues = root.createNestedArray("dewpoint");
 dewpValues.add(pfDew);
 JsonArray &EsPvValues = root.createNestedArray("systemv");
 EsPvValues.add(pfVcc / 1000, 3);
 String json;
 root.prettyPrintTo(json);
 return json;
}
void outputJson() {
 server.send(200, "text/json", createJsonResponse());
}

By the way, I recommend that you use the ArduinoJson Assistant to compute the size of the JsonBuffer.

answered Nov 23, 2017 at 18:20
1
  • thanks I did tried the suggested already but forgot to get rid of the other stuff from outputJson. Thank you very much . greatly appreciated (y) Commented Nov 23, 2017 at 18:30

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.