Merge pull request #128 from ityuhui/yh-freefrom-object-0614

Support free-form objects
This commit is contained in:
Kubernetes Prow Robot
2022-06-16 13:21:05 -07:00
committed by GitHub
2 changed files with 29 additions and 9 deletions

View File

@@ -4,28 +4,48 @@
#include "object.h" #include "object.h"
object_t *object_create() { object_t *object_create() {
object_t *object = malloc(sizeof(object_t)); object_t *object = calloc(1, sizeof(object_t));
return object; return object;
} }
void object_free(object_t *object) { void object_free(object_t *object) {
if (!object) {
return ;
}
if (object->temporary) {
free(object->temporary);
object->temporary = NULL;
}
free (object); free (object);
} }
cJSON *object_convertToJSON(object_t *object) { cJSON *object_convertToJSON(object_t *object) {
cJSON *item = cJSON_CreateObject(); if (!object) {
return NULL;
}
return item; if (!object->temporary) {
fail: return cJSON_Parse("null");
cJSON_Delete(item); }
return NULL;
return cJSON_Parse(object->temporary);
} }
object_t *object_parseFromJSON(char *jsonString){ object_t *object_parseFromJSON(cJSON *json){
object_t *object = NULL; if (!json) {
goto end;
}
object_t *object = object_create();
if (!object) {
goto end;
}
object->temporary = cJSON_Print(json);
return object; return object;
end: end:
return NULL; return NULL;
} }

View File

@@ -20,7 +20,7 @@ object_t *object_create();
void object_free(object_t *object); void object_free(object_t *object);
object_t *object_parseFromJSON(char *jsonString); object_t *object_parseFromJSON(cJSON *json);
cJSON *object_convertToJSON(object_t *object); cJSON *object_convertToJSON(object_t *object);