From 790d43162439f3927783f85e1c67e46775751d9d Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Thu, 6 Jan 2022 14:52:54 -0800 Subject: [PATCH] json: add json_iter_get_string --- src/json.c | 14 ++++++++++++++ src/json.h | 1 + 2 files changed, 15 insertions(+) diff --git a/src/json.c b/src/json.c index b48dba4a..b89fbaa6 100644 --- a/src/json.c +++ b/src/json.c @@ -398,6 +398,20 @@ bool json_iter_get_container(struct json_iter *iter, return true; } +bool json_iter_get_string(struct json_iter *iter, char **s) +{ + struct json_contents *c = iter->contents; + jsmntok_t *t = c->tokens + iter->current; + + if (t->type != JSMN_STRING) + return false; + + if (s) + *s = TOK_TO_STR(c->json, t); + + return true; +} + enum json_type json_iter_get_type(struct json_iter *iter) { struct json_contents *c = iter->contents; diff --git a/src/json.h b/src/json.h index 518d778c..1db3428d 100644 --- a/src/json.h +++ b/src/json.h @@ -95,6 +95,7 @@ bool json_iter_get_boolean(struct json_iter *iter, bool *b); bool json_iter_get_null(struct json_iter *iter); bool json_iter_get_container(struct json_iter *iter, struct json_iter *container); +bool json_iter_get_string(struct json_iter *iter, char **s); enum json_type json_iter_get_type(struct json_iter *iter); bool json_iter_next(struct json_iter *iter);