jsonFoldObject<T, E> function
JsonBuilder<T>
jsonFoldObject<T, E>(
- JsonBuilder<
E> elementBuilder, - T initialValue(),
- T combine(
- T previus,
- String? key,
- E elementValue
Reads a JSON object and combines its entries into a single value.
Each entry value is built using elementBuilder
,
then the keys and those values are combined using combine
.
Equivalent to
jsonObject(elementBuilder).entries.fold(initialValue(), (value, entry) =>
combine(value, entry.key, entry.value));
Implementation
JsonBuilder<T> jsonFoldObject<T, E>(
JsonBuilder<E> elementBuilder,
T Function() initialValue,
T Function(T previus, String? key, E elementValue) combine) =>
(JsonReader reader) {
reader.expectObject();
var result = initialValue();
String? key;
while ((key = reader.nextKey()) != null) {
var element = elementBuilder(reader);
result = combine(result, key, element);
}
return result;
};