Annotation of libelwix/example/test_json.c, revision 1.1.2.1

1.1.2.1 ! misho       1: #include <stdio.h>
        !             2: #include <string.h>
        !             3: #include <unistd.h>
        !             4: #include <fcntl.h>
        !             5: #include <sys/types.h>
        !             6: #include <elwix.h>
        !             7: 
        !             8: 
        !             9: int
        !            10: run_simple(json_t *json)
        !            11: {
        !            12:        static const char *teststr = "{\"user\": \"johndoe\", \"admin\": false, \"uid\": 1000,\n  "
        !            13:                                        "\"groups\": [\"users\", \"wheel\", \"audio\", \"video\"]}";
        !            14:        int i, ret;
        !            15:        jtok_t *tok, toks[20];
        !            16:        ait_val_t *v;
        !            17:        char *str;
        !            18:        array_t *arr;
        !            19: 
        !            20:        json_init(json, 0);
        !            21:        ret = json_parse(json, teststr, strlen(teststr), NULL, 0);
        !            22:        if (ret == -1) {
        !            23:                printf("Error:: #%d - %s\n", elwix_GetErrno(), elwix_GetError());
        !            24:                return 1;
        !            25:        } else
        !            26:                printf("We are need from %d tokens\n", ret);
        !            27:        json_init(json, 1);
        !            28:        ret = json_parse(json, teststr, strlen(teststr), NULL, 0);
        !            29:        if (ret == -1) {
        !            30:                printf("Error:: #%d - %s\n", elwix_GetErrno(), elwix_GetError());
        !            31:                return 1;
        !            32:        } else
        !            33:                printf("(strict) We are need from %d tokens\n", ret);
        !            34:        json_init(json, 0);
        !            35:        ret = json_parse(json, teststr, strlen(teststr), toks, sizeof toks/sizeof *toks);
        !            36:        if (ret == -1) {
        !            37:                printf("Error:: #%d - %s\n", elwix_GetErrno(), elwix_GetError());
        !            38:                return 1;
        !            39:        } else
        !            40:                printf("We parsed %d tokens\n", ret);
        !            41:        memset(toks, 0, sizeof toks);
        !            42:        json_init(json, 1);
        !            43:        ret = json_parse(json, teststr, strlen(teststr), toks, sizeof toks/sizeof *toks);
        !            44:        if (ret == -1) {
        !            45:                printf("Error:: #%d - %s\n", elwix_GetErrno(), elwix_GetError());
        !            46:                return 1;
        !            47:        } else
        !            48:                printf("(strict) We parsed %d tokens\n", ret);
        !            49: 
        !            50:        if (!(tok = json_findbykey(teststr, "boza s kosmi", toks, ret)))
        !            51:                printf("Key=\"boza s kosmi\" not found!\n");
        !            52:        tok = json_findbykey(teststr, "user", toks, ret);
        !            53:        v = json_token2val(teststr, tok);
        !            54:        printf("Key=\"user\" data size=%ld type=%d %s\n", tok->tok_size, tok->tok_type, AIT_GET_STR(v));
        !            55:        ait_freeVar(&v);
        !            56:        tok = json_findbykey(teststr, "admin", toks, ret);
        !            57:        str = json_token2str(teststr, tok);
        !            58:        printf("Key=\"admin\" data size=%ld type=%d %s\n", tok->tok_size, tok->tok_type, str);
        !            59:        e_free(str);
        !            60:        tok = json_findbykey(teststr, "uid", toks, ret);
        !            61:        printf("Key=\"uid\" data size=%ld type=%d %ld\n", tok->tok_size, tok->tok_type, 
        !            62:                        json_token2num(teststr, tok));
        !            63:        arr = json_token2array(teststr, tok);
        !            64:        for (i = 0; i < array_Size(arr); i++)
        !            65:                printf("arr[%d]=%s\n", i, AIT_GET_STR(array(arr, i, ait_val_t*)));
        !            66:        ait_freeVars(&arr);
        !            67: 
        !            68:        tok = json_findbykey(teststr, "groups", toks, ret);
        !            69:        str = json_token2str(teststr, tok);
        !            70:        arr = json_token2array(teststr, tok);
        !            71:        printf("Key=\"groups\" data size=%ld type=%d %s\n", tok->tok_size, tok->tok_type, str);
        !            72:        e_free(str);
        !            73:        for (i = 0; i < array_Size(arr); i++)
        !            74:                printf("arr[%d]=%s\n", i, AIT_GET_STR(array(arr, i, ait_val_t*)));
        !            75:        ait_freeVars(&arr);
        !            76: 
        !            77:        return 0;
        !            78: }
        !            79: 
        !            80: int
        !            81: main(int argc, char **argv)
        !            82: {
        !            83:        json_t json;
        !            84: 
        !            85:        if (argc < 2)
        !            86:                return run_simple(&json);
        !            87: 
        !            88:        return 0;
        !            89: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>