From 9d31e8a05e30f221f832d68e3b1550aeb2f0e36b Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Fri, 7 Feb 2014 18:01:18 -0800 Subject: [PATCH] Slightly less wordy name for reading JSON with separators --- README.md | 8 +++++++- jsoncat.c | 2 +- jsonpull.c | 4 ++-- jsonpull.h | 2 +- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d7538208..f1fc1628 100644 --- a/README.md +++ b/README.md @@ -59,4 +59,10 @@ Reading JSON streams with callbacks ----------------------------------- If you are outputting a new stream as you read instead of just looking for the -sub-objects that interest you, +sub-objects that interest you, you also need to know when arrays and hashes begin, +not just when they end, so you can output the opening bracket or brace. For this +purpose there is an additional streaming reader function, +json_read_separators(), which takes an additional argument for +a function to call when brackets, braces, commas, and colons are read. +Other object types and the closing of arrays and hashes are still sent through +the normal return value. diff --git a/jsoncat.c b/jsoncat.c index f3220e12..7f2272b6 100644 --- a/jsoncat.c +++ b/jsoncat.c @@ -113,7 +113,7 @@ void process_callback(FILE *f, char *fname) { json_object *j; int level = 0; - while ((j = json_read_with_separators(jp, callback, &level)) != NULL) { + while ((j = json_read_separators(jp, callback, &level)) != NULL) { json_print_one(j, &level); json_free(j); diff --git a/jsonpull.c b/jsonpull.c index 8a62019b..e2ac0716 100644 --- a/jsonpull.c +++ b/jsonpull.c @@ -175,7 +175,7 @@ static void string_free(struct string *s) { free(s->buf); } -json_object *json_read_with_separators(json_pull *j, json_separator_callback cb, void *state) { +json_object *json_read_separators(json_pull *j, json_separator_callback cb, void *state) { int c; again: /////////////////////////// Whitespace @@ -476,7 +476,7 @@ again: } json_object *json_read(json_pull *j) { - return json_read_with_separators(j, NULL, NULL); + return json_read_separators(j, NULL, NULL); } json_object *json_read_tree(json_pull *p) { diff --git a/jsonpull.h b/jsonpull.h index da5232bb..6e14d6a1 100644 --- a/jsonpull.h +++ b/jsonpull.h @@ -44,7 +44,7 @@ typedef void (*json_separator_callback)(json_type type, json_pull *j, void *stat json_object *json_read_tree(json_pull *j); json_object *json_read(json_pull *j); -json_object *json_read_with_separators(json_pull *j, json_separator_callback cb, void *state); +json_object *json_read_separators(json_pull *j, json_separator_callback cb, void *state); void json_free(json_object *j); json_object *json_hash_get(json_object *o, char *s);