Tuple.fromJson constructor
Creates a tuple from a map/JSON source.
The type of tuple created is based on the existance of keys in the map
object. Because of this, if the map was generated from a JSON string where
null values were omitted, the resulting tuple might not be the desired
length. In these cases, you can use forceLength
to force a particular
length tuple to be returned.
Implementation
factory Tuple.fromJson(Map<String, dynamic> map, {int? forceLength}) {
if (forceLength != null) {
assert(forceLength >= 0 && forceLength <= 9,
'The value of forceLength must be between 0 and 9');
switch (forceLength) {
case 0:
return Tuple0.fromJson(map);
case 1:
return Tuple1<dynamic>.fromJson(map);
case 2:
return Tuple2<dynamic, dynamic>.fromJson(map);
case 3:
return Tuple3<dynamic, dynamic, dynamic>.fromJson(map);
case 4:
return Tuple4<dynamic, dynamic, dynamic, dynamic>.fromJson(map);
case 5:
return Tuple5<dynamic, dynamic, dynamic, dynamic, dynamic>.fromJson(
map);
case 6:
return Tuple6<dynamic, dynamic, dynamic, dynamic, dynamic,
dynamic>.fromJson(map);
case 7:
return Tuple7<dynamic, dynamic, dynamic, dynamic, dynamic, dynamic,
dynamic>.fromJson(map);
case 8:
return Tuple8<dynamic, dynamic, dynamic, dynamic, dynamic, dynamic,
dynamic, dynamic>.fromJson(map);
case 9:
return Tuple9<dynamic, dynamic, dynamic, dynamic, dynamic, dynamic,
dynamic, dynamic, dynamic>.fromJson(map);
}
}
if (map.containsKey('item8')) {
return Tuple9<dynamic, dynamic, dynamic, dynamic, dynamic, dynamic,
dynamic, dynamic, dynamic>.fromJson(map);
}
if (map.containsKey('item7')) {
return Tuple8<dynamic, dynamic, dynamic, dynamic, dynamic, dynamic,
dynamic, dynamic>.fromJson(map);
}
if (map.containsKey('item6')) {
return Tuple7<dynamic, dynamic, dynamic, dynamic, dynamic, dynamic,
dynamic>.fromJson(map);
}
if (map.containsKey('item5')) {
return Tuple6<dynamic, dynamic, dynamic, dynamic, dynamic,
dynamic>.fromJson(map);
}
if (map.containsKey('item4')) {
return Tuple5<dynamic, dynamic, dynamic, dynamic, dynamic>.fromJson(map);
}
if (map.containsKey('item3')) {
return Tuple4<dynamic, dynamic, dynamic, dynamic>.fromJson(map);
}
if (map.containsKey('item2')) {
return Tuple3<dynamic, dynamic, dynamic>.fromJson(map);
}
if (map.containsKey('item1')) return Tuple2<dynamic, dynamic>.fromJson(map);
if (map.containsKey('item')) return Tuple1<dynamic>.fromJson(map);
return Tuple0.fromJson(map);
}