From 03b1ee7a39d1ac166f4dff62c75374f85029c918 Mon Sep 17 00:00:00 2001 From: Louis Scalbert Date: Mon, 27 May 2024 10:04:14 +0200 Subject: [PATCH] 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 --- lib/vty.c | 15 +++++++++++++++ lib/vty.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/lib/vty.c b/lib/vty.c index 628c694e95..0dcd118a97 100644 --- a/lib/vty.c +++ b/lib/vty.c @@ -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; diff --git a/lib/vty.h b/lib/vty.h index a9570ef048..c336a816cc 100644 --- a/lib/vty.h +++ b/lib/vty.h @@ -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