From 2cef169f4b02598f2c99e151b04f96d72bff176e Mon Sep 17 00:00:00 2001 From: sparky4 Date: Sun, 22 Mar 2015 18:38:07 -0500 Subject: [PATCH 1/1] modified: src/lib/jsmn/example/MAPTEST.EXE modified: src/lib/jsmn/example/maptest.c --- src/lib/jsmn/example/MAPTEST.EXE | Bin 14212 -> 14216 bytes src/lib/jsmn/example/maptest.c | 46 ++++++++++++++++--------------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/lib/jsmn/example/MAPTEST.EXE b/src/lib/jsmn/example/MAPTEST.EXE index 829d1b16f075ce9e1898779c5edf9327b4c95fff..4c74586aa520ba1aed4c0da52688d3255ef7a19f 100644 GIT binary patch delta 3898 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 delta 3826 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 diff --git a/src/lib/jsmn/example/maptest.c b/src/lib/jsmn/example/maptest.c index 3cbcab9b..9c5b11d7 100644 --- a/src/lib/jsmn/example/maptest.c +++ b/src/lib/jsmn/example/maptest.c @@ -8,13 +8,10 @@ * tokens is predictable. */ -/*char *JSON_S = +/*char *json_string = "{\"user\": \"johndoe\", \"admin\": false, \"uid\": 1000,\n " "\"groups\": [\"users\", \"wheel\", \"audio\", \"video\"]}";*/ -char *JSON_STRING; -char JSON_S[BUFSIZ]; - long int filesize(FILE *fp) { long int save_pos, size_of_file; @@ -37,23 +34,28 @@ static int jsoneq(const char *json, jsmntok_t *tok, const char *s) { int main() { int i; int r; + //char json_s[8192]; jsmn_parser p; - FILE *fh = fopen("../../../../data/test.map", "r"); jsmntok_t t[2048]; /* We expect no more than 128 tokens */ - //memset(JSON_S, 0, sizeof(JSON_S)); + FILE *fh = fopen("../../../../data/test.map", "r"); + + char *json_string = malloc(filesize(fh)+1); + //memset(json_string, 0, sizeof(*json_string)); if(fh != NULL) { - fread(JSON_S, sizeof(char), filesize(fh), fh); + fread(json_string, 1, filesize(fh), fh); + json_string+1="\0"; // we can now close the file - //printf("]%s[\n", JSON_S); - JSON_STRING=JSON_S; - //printf("[[%s]]\n", JSON_STRING); + //printf("]%s[\n", json_s); + //json_string=json_s; + //printf("[[%s]]\n", json_string); jsmn_init(&p); - r = jsmn_parse(&p, JSON_STRING, filesize(fh), t, sizeof(t)/sizeof(t[0])); + printf("[\n%s\n]", json_string); + r = jsmn_parse(&p, json_string, filesize(fh), t, sizeof(t)/sizeof(t[0])); fclose(fh); fh = NULL; - printf("%s", JSON_STRING); + //printf("[\n%s\n]", json_string); if (r < 0) { printf("Failed to parse JSON: %d\n", r); return 1; @@ -67,22 +69,22 @@ int main() { /* Loop over all keys of the root object */ for (i = 1; i < r; i++) { - if (jsoneq(JSON_STRING, &t[i], "image") == 0) { + if (jsoneq(json_string, &t[i], "image") == 0) { /* We may use strndup() to fetch string value */ printf("- image: %.*s\n", t[i+1].end-t[i+1].start, - JSON_STRING + t[i+1].start); + json_string + t[i+1].start); i++; - } else if (jsoneq(JSON_STRING, &t[i], "admin") == 0) { + } else if (jsoneq(json_string, &t[i], "admin") == 0) { /* We may additionally check if the value is either "true" or "false" */ printf("- Admin: %.*s\n", t[i+1].end-t[i+1].start, - JSON_STRING + t[i+1].start); + json_string + t[i+1].start); i++; - } else if (jsoneq(JSON_STRING, &t[i], "uid") == 0) { + } else if (jsoneq(json_string, &t[i], "uid") == 0) { /* We may want to do strtol() here to get numeric value */ printf("- UID: %.*s\n", t[i+1].end-t[i+1].start, - JSON_STRING + t[i+1].start); + json_string + t[i+1].start); i++; - } else if (jsoneq(JSON_STRING, &t[i], "tilesets") == 0) { + } else if (jsoneq(json_string, &t[i], "tilesets") == 0) { int j; printf("- tilesets:\n"); if (t[i+1].type != JSMN_ARRAY) { @@ -90,16 +92,16 @@ int main() { } for (j = 0; j < t[i+1].size; j++) { jsmntok_t *g = &t[i+j+2]; - printf(" * %.*s\n", g->end - g->start, JSON_STRING + g->start); + printf(" * %.*s\n", g->end - g->start, json_string + g->start); } i += t[i+1].size + 1; } else { printf("Unexpected key: %.*s\n", t[i].end-t[i].start, - JSON_STRING + t[i].start); + json_string + t[i].start); } } - //free(JSON_STRING); + //free(json_string); } if (fh != NULL) fclose(fh); ////} -- 2.39.2