mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
util: json: Add helper to return string or number properties as string
The helper is useful in cases when the JSON we have to parse may contain one of the two due to historical reasons and the number value itself would be stored as a string.
This commit is contained in:
parent
c7f6d4d010
commit
d3da8013cc
@ -1208,6 +1208,33 @@ virJSONValueObjectGetString(virJSONValuePtr object,
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* virJSONValueObjectGetStringOrNumber:
|
||||
* @object: JSON value object
|
||||
* @key: name of the property in @object to get
|
||||
*
|
||||
* Gets a property named @key from the JSON object @object. The value may be
|
||||
* a number or a string and is returned as a string. In cases when the property
|
||||
* is not present or is not a string or number NULL is returned.
|
||||
*/
|
||||
const char *
|
||||
virJSONValueObjectGetStringOrNumber(virJSONValuePtr object,
|
||||
const char *key)
|
||||
{
|
||||
virJSONValuePtr val = virJSONValueObjectGet(object, key);
|
||||
|
||||
if (!val)
|
||||
return NULL;
|
||||
|
||||
if (val->type == VIR_JSON_TYPE_STRING)
|
||||
return val->data.string;
|
||||
else if (val->type == VIR_JSON_TYPE_NUMBER)
|
||||
return val->data.number;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
virJSONValueObjectGetNumberInt(virJSONValuePtr object,
|
||||
const char *key,
|
||||
|
@ -149,6 +149,7 @@ virJSONValuePtr virJSONValueObjectStealArray(virJSONValuePtr object,
|
||||
const char *key);
|
||||
|
||||
const char *virJSONValueObjectGetString(virJSONValuePtr object, const char *key);
|
||||
const char *virJSONValueObjectGetStringOrNumber(virJSONValuePtr object, const char *key);
|
||||
int virJSONValueObjectGetNumberInt(virJSONValuePtr object, const char *key, int *value);
|
||||
int virJSONValueObjectGetNumberUint(virJSONValuePtr object, const char *key, unsigned int *value);
|
||||
int virJSONValueObjectGetNumberLong(virJSONValuePtr object, const char *key, long long *value);
|
||||
|
Loading…
x
Reference in New Issue
Block a user