jsonStruct<T> function
JsonBuilder<Map<String?, T> >
jsonStruct<T>(
- Map<
String, JsonBuilder< valueBuilders, [T> > - JsonBuilder<
T> ? defaultBuilder
Builds a map from a JSON object
Reads a JSON object and builds a value for each object value
using the builder returned by valueBuilders[key]
for the corresponding
object key.
Then creates a Map<String, T>
of the keys and built values.
The defaultBuilder
is used if valueBuilders
has no entry for
a give key. If there is no defaultBuilder
and not entry in
valueBuilders
for a key, then the entry is ignored.
Implementation
JsonBuilder<Map<String?, T>> jsonStruct<T>(
Map<String, JsonBuilder<T>> valueBuilders,
[JsonBuilder<T>? defaultBuilder]) =>
(JsonReader reader) {
reader.expectObject();
var result = <String?, T>{};
var key = reader.nextKey();
while (key != null) {
var builder = valueBuilders[key] ?? defaultBuilder;
if (builder != null) {
result[key] = builder(reader);
} else {
reader.skipAnyValue();
}
key = reader.nextKey();
}
return result;
};