From 5727c8e5f5c477aa7b6a12df1c3276ba1f658e7d Mon Sep 17 00:00:00 2001 From: Jakob Olsson <jakob.olsson@iopsys.eu> Date: Mon, 30 Sep 2019 15:16:51 +0200 Subject: [PATCH] dump --- api.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/api.c b/api.c index d697ed5..c05f086 100644 --- a/api.c +++ b/api.c @@ -108,12 +108,18 @@ int set_by_string(char *fmt, struct json_object **src, char *val, enum json_type printf("idx = %d\n", idx); *open_brace = '\0'; printf("prev=%s\n", prev); - + printf("%s %d\n", __func__, __LINE__); if (ptr && json_object_get_type(ptr) == json_type_array) { + printf("%s %d\n", __func__, __LINE__); ptr = json_object_array_get_idx(ptr, idx); } else { ptr = json_object_new_array(); + printf("%s %d type=%s, ptr_type=%s\n", __func__, __LINE__, json_type_to_name(json_object_get_type(tmp)), json_type_to_name(json_object_get_type(ptr))); + printf("tmp=%s\n", json_object_get_string(tmp)); + printf("ptr=%s\n", json_object_get_string(ptr)); + printf("prev=%s\n", prev); json_object_object_add(tmp, prev, ptr); + //json_object_array_add(tmp, ptr); } } } @@ -121,7 +127,11 @@ int set_by_string(char *fmt, struct json_object **src, char *val, enum json_type /* create prev object if it does not exist */ if (!ptr) { ptr = json_object_new_object(); - json_object_object_add(tmp, prev, ptr); + printf("%s %d\n", __func__, __LINE__); + if (json_object_get_type(tmp) == json_type_array) + json_object_array_add(tmp, ptr); + else if (json_object_get_type(tmp) == json_type_object) + json_object_object_add(tmp, prev, ptr); } } @@ -245,13 +255,21 @@ int main() struct json_object *obj = path_to_obj("/home/jakob/git/json-editor-api/test.json"); struct json_object *ptr; + printf("%s %d\n", __func__, __LINE__); + struct json_object *arr = json_object_new_array(); + struct json_object *obj_arr = json_object_new_object(); + + json_object_object_add(obj_arr, "test_arr", arr); + printf("tets_arr = %s\n", json_object_get_string(obj_arr)); + + printf("%s %d obj=%s\n", __func__, __LINE__, json_object_get_string(obj)); ptr = get("nested", obj); printf("%s\n", json_object_get_string(ptr)); - set_by_string("nested.api[1].test", &obj, "1", json_type_string); + set_by_string("test.apdfgj[1]", &obj, "1", json_type_string); printf("%s\n", json_object_get_string(obj)); -- GitLab