I'm working on an ESP8266 module that needs to fetch date data from worldtimeapi, everything works fine but the problem is How do I strip of the time field off the datetime JSON response without loop.
Note: Arduino JSON library was used in deserializing the response data and it seems the library only supports char
data type.
void loop ()
{
// Initialize the request object
HTTPClient request;
// Make a http request
request.begin(dateTime);
delay(2000);
// Check the request status code.
int responseCode = request.GET(); //Get the api host response code.
Serial.print("Response code is: ");
Serial.println(responseCode);
if (responseCode == 200); // If the server returned OK
{
String responseData = request.getString();
Serial.println("Response from the server is:");
Serial.println(responseData);
// Deserialize the JSON response data
StaticJsonDocument<715> result; // Declare data storage to stack
//Check for error during data deserialization
DeserializationError error = deserializeJson(result, responseData);
if (error)
{
Serial.print(F("Response deserialization failed with reason: "));
Serial.println(error.f_str());
return;
}
else
{
char abbreviation = result["abbreviation"]; // Returns the current time zone abbreviation
char timezone = result["timezone"]; // Returns the current time zone
char datetime = result["datetime"]; // "2021-03-12T17:04:0
char date = datetime.remove(9,22); // This line throws error : request for member 'remove' in 'datetime', which is of non-class type 'char'
Serial.print("Current time is ");
Serial.print(datetime);
Serial.print(" ");
Serial.print(abbreviation);
Serial.print(" ");
Serial.println(timezone);
delay(2000);
}
}
}
without loop
?