--- libelwix/example/test_json.c 2024/12/04 17:46:50 1.4.38.1 +++ libelwix/example/test_json.c 2025/08/25 13:00:37 1.6 @@ -10,11 +10,11 @@ int run_simple(json_t *json) { - 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\"}}"; + static const char *teststr = "[ \"test123\", {\"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\"}} ]"; // static const char *teststr = "{}\n[]\n\"sdfsdf\""; int i, ret; - jtok_t *tok, toks[36]; + jtok_t *tok, toks[38]; ait_val_t *v; char *str; array_t *arr; @@ -67,43 +67,63 @@ run_simple(json_t *json) if (tok) { 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); + arr = json_token2vars(teststr, tok); for (i = 0; i < array_Size(arr); i++) - printf("arr[%d]=%s\n", i, AIT_GET_STR(array(arr, i, ait_val_t*))); + printf("avars[%d]=%s\n", i, AIT_GET_STR(array(arr, i, ait_val_t*))); ait_freeVars(&arr); + + arr = json_token2array(teststr, tok); + for (i = 0; i < array_Size(arr); i++) + printf("arr[%d]=%s\n", i, array(arr, i, char*)); + json_freearray(&arr); } tok = json_findbykey(teststr, "groups", J_UNDEF, toks, ret); if (tok) { str = json_token2str(teststr, tok); - arr = json_token2array(teststr, tok); + arr = json_token2vars(teststr, tok); 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*))); + printf("avars[%d]=%s\n", i, AIT_GET_STR(array(arr, i, ait_val_t*))); ait_freeVars(&arr); + + arr = json_token2array(teststr, tok); + for (i = 0; i < array_Size(arr); i++) + printf("arr[%d]=%s\n", i, array(arr, i, char*)); + json_freearray(&arr); } tok = json_findbykey(teststr, "objects", J_UNDEF, toks, ret); if (tok) { str = json_token2str(teststr, tok); - arr = json_token2array(teststr, tok); + arr = json_token2vars(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*))); + printf("avars[%d]=%s\n", i, AIT_GET_STR(array(arr, i, ait_val_t*))); ait_freeVars(&arr); + + arr = json_token2array(teststr, tok); + for (i = 0; i < array_Size(arr); i++) + printf("arr[%d]=%s\n", i, array(arr, i, char*)); + json_freearray(&arr); } tok = json_findbykey(teststr, "testend", J_UNDEF, toks, ret); if (tok) { str = json_token2str(teststr, tok); - arr = json_token2array(teststr, tok); + arr = json_token2vars(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*))); + printf("avars[%d]=%s\n", i, AIT_GET_STR(array(arr, i, ait_val_t*))); ait_freeVars(&arr); + + arr = json_token2array(teststr, tok); + for (i = 0; i < array_Size(arr); i++) + printf("arr[%d]=%s\n", i, array(arr, i, char*)); + json_freearray(&arr); } return 0;