Add functions json_object_iter_{at,set,set_new}

This commit is contained in:
Petri Lehtinen
2010-02-01 21:01:24 +02:00
parent 72e3948438
commit b495b96547
7 changed files with 134 additions and 0 deletions

View File

@@ -493,6 +493,16 @@ The following functions implement an iteration protocol for objects:
Returns an opaque iterator which can be used to iterate over all
key-value pairs in *object*, or *NULL* if *object* is empty.
.. cfunction:: void *json_object_iter_at(json_t *object, const char *key)
Like :cfunc:`json_object_iter()`, but returns an iterator to the
key-value pair in *object* whose key is equal to *key*, or NULL if
*key* is not found in *object*. Iterating forward to the end of
*object* only yields all key-value pairs of the object if *key*
happens to be the first key in the underlying hash table.
.. versionadded:: 1.3
.. cfunction:: void *json_object_iter_next(json_t *object, void *iter)
Returns an iterator pointing to the next key-value pair in *object*
@@ -509,6 +519,21 @@ The following functions implement an iteration protocol for objects:
Extract the associated value from *iter*.
.. cfunction:: int json_object_iter_set(json_t *object, void *iter, json_t *value)
Set the value of the key-value pair in *object*, that is pointed to
by *iter*, to *value*.
.. versionadded:: 1.3
.. cfunction:: int json_object_iter_set_new(json_t *object, void *iter, json_t *value)
Like :cfunc:`json_object_iter_set()`, but steals the reference to
*value*. This is useful when *value* is newly created and not used
after the call.
.. versionadded:: 1.3
The iteration protocol can be used for example as follows::
/* obj is a JSON object */