flattenJSON static method
Implementation
static void flattenJSON(List? jsonKeys, List<num> times, List<num> values, String valuePropertyName) {
int i = 1;
Map? key = jsonKeys?[0];
while (key != null && key[valuePropertyName] == null) {
key = jsonKeys?[i++];
}
if (key == null) return; // no data
dynamic value = key[valuePropertyName];
if (value == null) return; // no data
// if ( Array.isArray( value ) ) {
if (value.runtimeType == List) {
do {
value = key?[valuePropertyName];
if (value != null) {
times.add(key?['time']);
values.addAll(value); // push all elements
}
key = jsonKeys?[i++];
} while (key != null);
}
else if (value.toArray != null) {
// ...assume THREE.Math-ish
do {
value = key?[valuePropertyName];
if (value != null) {
times.add(key?['time']);
value.toArray(values, values.length);
}
key = jsonKeys?[i++];
} while (key != null);
}
else {
do {
value = key?[valuePropertyName];
if (value != null) {
times.add(key?['time']);
values.add(value);
}
key = jsonKeys?[i++];
} while (key != null);
}
}