]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/jsmn/example/jsondump.c
did some cleaning~ wwww
[16.git] / src / lib / jsmn / example / jsondump.c
index 04d9f5aea28bff16fca984c9c43d366ec4e73d53..b7d25cb0c677c92f516afeb55a2f43786d26153d 100644 (file)
@@ -8,6 +8,13 @@
  * An example of reading JSON from stdin and printing its content to stdout.
  * The output looks like YAML, but I'm not sure if it's really compatible.
  */
+static int jsoneq(const char *json, jsmntok_t *tok, const char *s) {
+       if (tok->type == JSMN_STRING && (int) strlen(s) == tok->end - tok->start &&
+                       strncmp(json + tok->start, s, tok->end - tok->start) == 0) {
+               return 0;
+       }
+       return -1;
+}
 
 static int dump(const char *js, jsmntok_t *t, size_t count, int indent) {
        int i, j, k;
@@ -18,6 +25,11 @@ static int dump(const char *js, jsmntok_t *t, size_t count, int indent) {
                printf("%.*s", t->end - t->start, js+t->start);
                return 1;
        } else if (t->type == JSMN_STRING) {
+                               if(jsoneq(js, t, "data") == 0 )
+               {
+//                     printf("[[[[%d|%d]]]]\n", &(t+1)->size, (t+1)->size);
+                       printf("\n%.*s[xx[%d|%d]xx]\n", (t+1)->end - (t+1)->start, js+(t+1)->start, &(t+1)->size, (t+1)->size);
+               }
                printf("'%.*s'", t->end - t->start, js+t->start);
                return 1;
        } else if (t->type == JSMN_OBJECT) {