Support free-form objects

This commit is contained in:
Hui Yu
2022-06-14 10:38:10 +08:00
parent 74e4fcc9e2
commit dcc3d8a9fc
2 changed files with 29 additions and 9 deletions

View File

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

View File

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