diff --git a/api.c b/api.c
index 5b02ef10b5c16990d3687ea39d949c06fe64f1c7..72c9ffce289e71dad9119fc2624b6ec2a35ec7a4 100644
--- a/api.c
+++ b/api.c
@@ -102,7 +102,7 @@ int get_idx(char *key, int *idx, char *out)
 	}
 
 	strncpy(out, buffer, 31);
-	printf("%s %d, out=%s, buffer=%s", __func__, __LINE__, out, buffer);
+	printf("%s %d, out=%s, buffer=%s\n", __func__, __LINE__, out, buffer);
 	return len;
 }
 
@@ -386,11 +386,27 @@ struct json_object *get(struct json_object *src, char *fmt)
 	struct json_object *ptr, *tmp = src;
 	const char *delimiter = ".";
 	char fmt_cpy[1024] = {0};
+	char parsed_key[32] = {0};
+	int idx[32];
 
 	strcpy(fmt_cpy, fmt);
 
-	for (char *p = strtok(fmt_cpy,delimiter); p != NULL; p = strtok(NULL, delimiter)) {
-		json_object_object_get_ex(tmp, p, &ptr);
+	for (char *key = strtok(fmt_cpy,delimiter); key != NULL; key = strtok(NULL, delimiter)) {
+		int len = 0;
+		len = get_idx(key, idx, parsed_key);
+		json_object_object_get_ex(tmp, parsed_key, &ptr);
+
+		printf("%s %d ptr = %s\n", __func__, __LINE__, json_object_get_string(ptr));
+
+		for (int i = 0; i < len; i++) {
+			if (!json_object_is_type(ptr, json_type_array))
+				return NULL;
+
+			int index = (idx[i] == -1 ? json_object_array_length(ptr) -1 : idx[i]);
+			ptr = json_object_array_get_idx(ptr, index);
+			printf("%s %d ptr = %s\n", __func__, __LINE__, json_object_get_string(ptr));
+		}
+
 		tmp = ptr;
 	}