jsonFoldObject<T, E> function

JsonBuilder<T> jsonFoldObject<T, E>(
  1. JsonBuilder<E> elementBuilder,
  2. T initialValue(),
  3. T combine(
    1. T previus,
    2. String? key,
    3. 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;
    };