mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-24 14:45:24 +00:00
util: json: Extract deflattening of keys into a separate function
Extract the code so that there's a clean separation once we'll want do do other steps. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
fca6f593c9
commit
df30457587
@ -2049,6 +2049,10 @@ virJSONStringReformat(const char *jsonstr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static virJSONValuePtr
|
||||||
|
virJSONValueObjectDeflattenKeys(virJSONValuePtr json);
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virJSONValueObjectDeflattenWorker(const char *key,
|
virJSONValueObjectDeflattenWorker(const char *key,
|
||||||
virJSONValuePtr value,
|
virJSONValuePtr value,
|
||||||
@ -2064,7 +2068,7 @@ virJSONValueObjectDeflattenWorker(const char *key,
|
|||||||
if (!strchr(key, '.')) {
|
if (!strchr(key, '.')) {
|
||||||
|
|
||||||
if (virJSONValueIsObject(value))
|
if (virJSONValueIsObject(value))
|
||||||
newval = virJSONValueObjectDeflatten(value);
|
newval = virJSONValueObjectDeflattenKeys(value);
|
||||||
else
|
else
|
||||||
newval = virJSONValueCopy(value);
|
newval = virJSONValueCopy(value);
|
||||||
|
|
||||||
@ -2113,6 +2117,20 @@ virJSONValueObjectDeflattenWorker(const char *key,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static virJSONValuePtr
|
||||||
|
virJSONValueObjectDeflattenKeys(virJSONValuePtr json)
|
||||||
|
{
|
||||||
|
g_autoptr(virJSONValue) deflattened = virJSONValueNewObject();
|
||||||
|
|
||||||
|
if (virJSONValueObjectForeachKeyValue(json,
|
||||||
|
virJSONValueObjectDeflattenWorker,
|
||||||
|
deflattened) < 0)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return g_steal_pointer(&deflattened);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* virJSONValueObjectDeflatten:
|
* virJSONValueObjectDeflatten:
|
||||||
*
|
*
|
||||||
@ -2128,12 +2146,5 @@ virJSONValueObjectDeflattenWorker(const char *key,
|
|||||||
virJSONValuePtr
|
virJSONValuePtr
|
||||||
virJSONValueObjectDeflatten(virJSONValuePtr json)
|
virJSONValueObjectDeflatten(virJSONValuePtr json)
|
||||||
{
|
{
|
||||||
g_autoptr(virJSONValue) deflattened = virJSONValueNewObject();
|
return virJSONValueObjectDeflattenKeys(json);
|
||||||
|
|
||||||
if (virJSONValueObjectForeachKeyValue(json,
|
|
||||||
virJSONValueObjectDeflattenWorker,
|
|
||||||
deflattened) < 0)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
return g_steal_pointer(&deflattened);
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user