--- libelwix/example/test_json.c 2017/11/28 02:05:21 1.1.2.3 +++ libelwix/example/test_json.c 2017/11/28 11:14:00 1.1.2.4 @@ -9,10 +9,10 @@ int run_simple(json_t *json) { - static const char *teststr = "{\"user\": \"johndoe\", \"admin\": false, \"uid\": 1000,\n " - "\"groups\": [\"users\", \"\", \"wheel\", \"audio\", \"video\"]}"; + static const char *teststr = "{\"user\": \"johndoe\", { \"meow\", \"\", \"\aaa\"}, \"admin\": false, \"uid\": 1000, \"objects\" : { \"a\":\"1\", \"b\" : \"2\" ,\"c\" : \"3\", , \"oho\"},\n" + "\"groups\": [\"users\", \"\", \"wheel\", \"audio\", \"video\"], \"testend\":{\"x\" : \"8\", \"y\":\"7\", \"z\" : \"9\"}}"; int i, ret; - jtok_t *tok, toks[20]; + jtok_t *tok, toks[36]; ait_val_t *v; char *str; array_t *arr; @@ -51,14 +51,14 @@ run_simple(json_t *json) printf("Key=\"boza s kosmi\" not found!\n"); tok = json_findbykey(teststr, "user", toks, ret); v = json_token2val(teststr, tok); - printf("Key=\"user\" data size=%ld type=%d %s\n", tok->tok_size, tok->tok_type, AIT_GET_STR(v)); + printf("Key=\"user\" data parent=%ld idx=%ld size=%ld type=%d %s\n", tok->tok_parent, tok->tok_idx, tok->tok_size, tok->tok_type, AIT_GET_STR(v)); ait_freeVar(&v); tok = json_findbykey(teststr, "admin", toks, ret); str = json_token2str(teststr, tok); - printf("Key=\"admin\" data size=%ld type=%d %s\n", tok->tok_size, tok->tok_type, str); + printf("Key=\"admin\" data parent=%ld idx=%ld size=%ld type=%d %s\n", tok->tok_parent, tok->tok_idx, tok->tok_size, tok->tok_type, str); e_free(str); tok = json_findbykey(teststr, "uid", toks, ret); - printf("Key=\"uid\" data size=%ld type=%d %ld\n", tok->tok_size, tok->tok_type, + printf("Key=\"uid\" data parent=%ld idx=%ld size=%ld type=%d %ld\n", tok->tok_parent, tok->tok_idx, tok->tok_size, tok->tok_type, json_token2num(teststr, tok)); arr = json_token2array(teststr, tok); for (i = 0; i < array_Size(arr); i++) @@ -68,7 +68,25 @@ run_simple(json_t *json) tok = json_findbykey(teststr, "groups", toks, ret); str = json_token2str(teststr, tok); arr = json_token2array(teststr, tok); - printf("Key=\"groups\" data size=%ld type=%d %s\n", tok->tok_size, tok->tok_type, str); + printf("Key=\"groups\" data parent=%ld idx=%ld size=%ld type=%d %s\n", tok->tok_parent, tok->tok_idx, tok->tok_size, tok->tok_type, str); + e_free(str); + for (i = 0; i < array_Size(arr); i++) + printf("arr[%d]=%s\n", i, AIT_GET_STR(array(arr, i, ait_val_t*))); + ait_freeVars(&arr); + + tok = json_findbykey(teststr, "objects", toks, ret); + str = json_token2str(teststr, tok); + arr = json_token2array(teststr, tok); + printf("Key=\"objects\" data parent=%ld idx=%ld size=%ld type=%d %s\n", tok->tok_parent, tok->tok_idx, tok->tok_size, tok->tok_type, str); + e_free(str); + for (i = 0; i < array_Size(arr); i++) + printf("arr[%d]=%s\n", i, AIT_GET_STR(array(arr, i, ait_val_t*))); + ait_freeVars(&arr); + + tok = json_findbykey(teststr, "testend", toks, ret); + str = json_token2str(teststr, tok); + arr = json_token2array(teststr, tok); + printf("Key=\"testend\" data parent=%ld idx=%ld size=%ld type=%d %s\n", tok->tok_parent, tok->tok_idx, tok->tok_size, tok->tok_type, str); e_free(str); for (i = 0; i < array_Size(arr); i++) printf("arr[%d]=%s\n", i, AIT_GET_STR(array(arr, i, ait_val_t*)));