Copyright | Will Thompson and Iñaki García Etxebarria |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
An iterator object used to iterate over the members of a JSON object.
JsonObjectIter
must be allocated on the stack and initialised using
objectIterInit
or objectIterInitOrdered
.
The iterator is invalidated if the object is modified during iteration.
All the fields in the JsonObjectIter
structure are private and should
never be accessed directly.
Since: 1.2
Synopsis
- newtype ObjectIter = ObjectIter (ManagedPtr ObjectIter)
- newZeroObjectIter :: MonadIO m => m ObjectIter
- objectIterInit :: (HasCallStack, MonadIO m) => ObjectIter -> Object -> m ()
- objectIterInitOrdered :: (HasCallStack, MonadIO m) => ObjectIter -> Object -> m ()
- objectIterNext :: (HasCallStack, MonadIO m) => ObjectIter -> m (Bool, Text, Node)
- objectIterNextOrdered :: (HasCallStack, MonadIO m) => ObjectIter -> m (Bool, Text, Node)
Exported types
newtype ObjectIter Source #
Memory-managed wrapper type.
ObjectIter (ManagedPtr ObjectIter) |
Instances
Eq ObjectIter Source # | |
Defined in GI.Json.Structs.ObjectIter (==) :: ObjectIter -> ObjectIter -> Bool # (/=) :: ObjectIter -> ObjectIter -> Bool # | |
BoxedPtr ObjectIter Source # | |
Defined in GI.Json.Structs.ObjectIter boxedPtrCopy :: ObjectIter -> IO ObjectIter boxedPtrFree :: ObjectIter -> IO () | |
CallocPtr ObjectIter Source # | |
Defined in GI.Json.Structs.ObjectIter boxedPtrCalloc :: IO (Ptr ObjectIter) | |
ManagedPtrNewtype ObjectIter Source # | |
Defined in GI.Json.Structs.ObjectIter toManagedPtr :: ObjectIter -> ManagedPtr ObjectIter | |
tag ~ 'AttrSet => Constructible ObjectIter tag Source # | |
Defined in GI.Json.Structs.ObjectIter new :: MonadIO m => (ManagedPtr ObjectIter -> ObjectIter) -> [AttrOp ObjectIter tag] -> m ObjectIter |
newZeroObjectIter :: MonadIO m => m ObjectIter Source #
Construct a ObjectIter
struct initialized to zero.
Methods
Click to display all available methods, including inherited ones
init
:: (HasCallStack, MonadIO m) | |
=> ObjectIter |
|
-> Object |
|
-> m () |
Initialises the iter
and associate it with object
.
c code
JsonObjectIter iter; const gchar *member_name; JsonNode *member_node; json_object_iter_init (&iter, some_object); while (json_object_iter_next (&iter, &member_name, &member_node)) { // Do something with @member_name and @member_node. }
The iterator initialized with this function will iterate the members of the object in an undefined order.
See also: objectIterInitOrdered
Since: 1.2
initOrdered
objectIterInitOrdered Source #
:: (HasCallStack, MonadIO m) | |
=> ObjectIter |
|
-> Object |
|
-> m () |
Initialises the iter
and associate it with object
.
c code
JsonObjectIter iter; const gchar *member_name; JsonNode *member_node; json_object_iter_init_ordered (&iter, some_object); while (json_object_iter_next_ordered (&iter, &member_name, &member_node)) { // Do something with @member_name and @member_node. }
See also: objectIterInit
Since: 1.6
next
:: (HasCallStack, MonadIO m) | |
=> ObjectIter |
|
-> m (Bool, Text, Node) | Returns: |
Advances the iterator and retrieves the next member in the object.
If the end of the object is reached, FALSE
is returned and memberName
and memberNode
are set to invalid values. After that point, the iter
is invalid.
The order in which members are returned by the iterator is undefined. The iterator is invalidated if the object is modified during iteration.
You must use this function with an iterator initialized with
objectIterInit
; using this function with an iterator
initialized with objectIterInitOrdered
yields undefined
behavior.
See also: objectIterNextOrdered
Since: 1.2
nextOrdered
objectIterNextOrdered Source #
:: (HasCallStack, MonadIO m) | |
=> ObjectIter |
|
-> m (Bool, Text, Node) | Returns: |
Advances the iterator and retrieves the next member in the object.
If the end of the object is reached, FALSE
is returned and memberName
and
memberNode
are set to invalid values. After that point, the iter
is invalid.
The order in which members are returned by the iterator is the same order in
which the members were added to the JsonObject
. The iterator is invalidated
if its JsonObject
is modified during iteration.
You must use this function with an iterator initialized with
objectIterInitOrdered
; using this function with an iterator
initialized with objectIterInit
yields undefined behavior.
See also: objectIterNext
Since: 1.6