function jsonstatToArray(data) {
let value = {};
let result = [];
let dimensions = data.id.map((id, i) => {
let dims = new Array(data.size[i]);
for (let category in data.dimension[id].category.index) {
dims[data.dimension[id].category.index[category]] = category;
}
return dims;
});
let helper = function(dimensionIndex) {
let dimensionId = data.id[dimensionIndex];
for (let category of dimensions[dimensionIndex]) {
value[dimensionId] = category;
if ("label" in data.dimension[dimensionId].category) {
value[dimensionId + "_label"] =
data.dimension[dimensionId].category.label[category];
}
if (dimensionIndex === dimensions.length - 1) {
value["value"] = data.value[result.length];
result.push({ ...value });
} else {
helper(dimensionIndex + 1);
}
}
};
helper(0);
return result;
}