Parsing rest data with cJSON lib. New restcurl function: getRestSensor()
This commit is contained in:
@@ -31,7 +31,7 @@ static size_t write_data(void *ptr, size_t size, size_t nmemb, struct url_data *
|
||||
return size * nmemb;
|
||||
}
|
||||
|
||||
char *handle_url(char *url) {
|
||||
static char *handle_url(char *url) {
|
||||
CURL *curl;
|
||||
|
||||
struct url_data data;
|
||||
@@ -63,3 +63,19 @@ char *handle_url(char *url) {
|
||||
return data.data;
|
||||
}
|
||||
|
||||
int getRestSensor(sensor *sensor) {
|
||||
char *data = handle_url(sensor->ip);
|
||||
if (data) {
|
||||
cJSON *jsondata = cJSON_Parse(data);
|
||||
cJSON *temperature = cJSON_GetObjectItemCaseSensitive(jsondata, "temperature");
|
||||
cJSON *humidity = cJSON_GetObjectItemCaseSensitive(jsondata, "humidity");
|
||||
sensor->temperature = (float)temperature->valuedouble;
|
||||
sensor->humidity = (float)humidity->valuedouble;
|
||||
|
||||
//free
|
||||
cJSON_Delete(jsondata);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user