diff options
author | Louis Scalbert <louis.scalbert@6wind.com> | 2024-05-27 10:04:14 +0200 |
---|---|---|
committer | Louis Scalbert <louis.scalbert@6wind.com> | 2024-06-07 10:13:26 +0200 |
commit | 03b1ee7a39d1ac166f4dff62c75374f85029c918 (patch) | |
tree | 0eeb215a4096038e6cecfba24022a937f42e80da | |
parent | Revert "vtysh, zebra: Fix malformed json output for multiple vrfs in command ... (diff) | |
download | frr-03b1ee7a39d1ac166f4dff62c75374f85029c918.tar.xz frr-03b1ee7a39d1ac166f4dff62c75374f85029c918.zip |
lib: add helpers to print json keys
Add helpers to print json keys in order to prepare the next commits.
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
-rw-r--r-- | lib/vty.c | 15 | ||||
-rw-r--r-- | lib/vty.h | 2 |
2 files changed, 17 insertions, 0 deletions
@@ -390,6 +390,21 @@ int vty_json_no_pretty(struct vty *vty, struct json_object *json) return vty_json_helper(vty, json, JSON_C_TO_STRING_NOSLASHESCAPE); } + +void vty_json_key(struct vty *vty, const char *key, bool *first_key) +{ + vty_out(vty, "%s\"%s\":", *first_key ? "{" : ",", key); + *first_key = false; +} + +void vty_json_close(struct vty *vty, bool first_key) +{ + if (first_key) + /* JSON was not opened */ + vty_out(vty, "{"); + vty_out(vty, "}\n"); +} + void vty_json_empty(struct vty *vty, struct json_object *json) { json_object *jsonobj = json; @@ -378,6 +378,8 @@ extern bool vty_set_include(struct vty *vty, const char *regexp); */ extern int vty_json(struct vty *vty, struct json_object *json); extern int vty_json_no_pretty(struct vty *vty, struct json_object *json); +void vty_json_key(struct vty *vty, const char *key, bool *first_key); +void vty_json_close(struct vty *vty, bool first_key); extern void vty_json_empty(struct vty *vty, struct json_object *json); /* post fd to be passed to the vtysh client * fd is owned by the VTY code after this and will be closed when done |