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