decodeAxisSpec<D> static method
Decodes the object from a Map-like dynamic structure. This expects the JSON format to be of the following structure:
{
"renderSpec": <RenderSpec>,
"scaleSpec": <ScaleSpec>,
"showAxisLine": <bool>,
"tickFormatterSpec": <TickFormatterSpec>,
"tickProviderSpec": <TickProviderSpec>,
"type": <String>
}
See also:
Implementation
static charts.AxisSpec<D>? decodeAxisSpec<D>(
dynamic map, {
bool validate = true,
}) {
charts.AxisSpec? result;
if (map is charts.AxisSpec<D>) {
result = map;
} else if (map != null) {
assert(SchemaValidator.validate(
schemaId: '$_baseSchemaUrl/axis_spec',
value: map,
validate: validate,
));
final type = map['type'];
switch (type) {
case 'bucketing':
result = decodeBucketingAxisSpec(
map,
validate: false,
);
break;
case 'date_time':
result = decodeDateTimeAxisSpec(
map,
validate: false,
);
break;
case 'end_points_time':
result = decodeEndPointsTimeAxisSpec(
map,
validate: false,
);
break;
case 'numeric':
result = decodeNumericAxisSpec(
map,
validate: false,
);
break;
case 'ordinal':
result = decodeOrdinalAxisSpec(
map,
validate: false,
);
break;
case 'percent':
result = decodePercentAxisSpec<D>(
map,
validate: false,
);
break;
default:
result = charts.AxisSpec<D>(
renderSpec: decodeRenderSpec<D>(
map['renderSpec'],
validate: false,
),
scaleSpec: map['scaleSpec'],
showAxisLine: map['showAxisLine'] == null
? null
: JsonClass.parseBool(map['showAxisLine']),
tickFormatterSpec: decodeTickFormatterSpec<D>(
map['tickFormatterSpec'],
validate: false,
),
tickProviderSpec: map['tickProviderSpec'],
);
}
}
return result as common.AxisSpec<D>?;
}