diff options
-rw-r--r-- | src/shared/json.c | 22 | ||||
-rw-r--r-- | src/shared/json.h | 2 |
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); |