summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/shared/json.c22
-rw-r--r--src/shared/json.h2
2 files changed, 24 insertions, 0 deletions
diff --git a/src/shared/json.c b/src/shared/json.c
index e761037d34..294e4335ee 100644
--- a/src/shared/json.c
+++ b/src/shared/json.c
@@ -1814,6 +1814,28 @@ int json_variant_set_field(JsonVariant **v, const char *field, JsonVariant *valu
return 1;
}
+int json_variant_set_field_string(JsonVariant **v, const char *field, const char *value) {
+ _cleanup_(json_variant_unrefp) JsonVariant *m = NULL;
+ int r;
+
+ r = json_variant_new_string(&m, value);
+ if (r < 0)
+ return r;
+
+ return json_variant_set_field(v, field, m);
+}
+
+int json_variant_set_field_unsigned(JsonVariant **v, const char *field, uintmax_t u) {
+ _cleanup_(json_variant_unrefp) JsonVariant *m = NULL;
+ int r;
+
+ r = json_variant_new_unsigned(&m, u);
+ if (r < 0)
+ return r;
+
+ return json_variant_set_field(v, field, m);
+}
+
int json_variant_strv(JsonVariant *v, char ***ret) {
char **l = NULL;
size_t n, i;
diff --git a/src/shared/json.h b/src/shared/json.h
index 667c57c9f7..41bdb95cc0 100644
--- a/src/shared/json.h
+++ b/src/shared/json.h
@@ -173,6 +173,8 @@ void json_variant_dump(JsonVariant *v, JsonFormatFlags flags, FILE *f, const cha
int json_variant_filter(JsonVariant **v, char **to_remove);
int json_variant_set_field(JsonVariant **v, const char *field, JsonVariant *value);
+int json_variant_set_field_string(JsonVariant **v, const char *field, const char *value);
+int json_variant_set_field_unsigned(JsonVariant **v, const char *field, uintmax_t value);
int json_variant_strv(JsonVariant *v, char ***ret);