I有一个django序列化的API字段,该字段包含创建图表的数据库JSONFIELD数据(确认此数据可以在我的烧瓶后端工作),但是我无法使用从DjangoAPI
中获取的相同数据''
// data.data.linechart: "[{'index': 129, 'Strategy': 28.893}, {'index': 1304, 'Strategy': 33.331}]"
fetch(url)
.then(response => response.json())
.then(data => {
var dataArray = Object.keys(data.data.linechart).map(function(key) {
return [key, data.data.linechart[key]];
});
// Convert the array of key-value pairs to a format that supports map
var mapData = dataArray.map(function(item) {
return { index: item[0], Strategy: item[1] };
});
const series = [
{
name: 'Strategy',
data: mapData
}
];
//Apex Chart
var optionsChart = {
series: [{
name: 'New Data',
data: series
}],
我在这里错过了什么?
取出将序列化的API数据作为对象提取 - 上面的转换不起作用。 其他人看过同样的问题?
我尝试过:
答案是耐心。当然,现在我知道如何处理答案。
next,我在数据库中发现JSON是单引号 认可,请参阅下面的双引号的修复程序 - 和@serhii Fomenko 指出了一个可能起作用的json.dumps解决方案。
文本。重新允许我到JSON.PARSE-步骤3。 阵列。fetch(url)
.then(response => response.json())
.then(data => {
console.log("data", data);
console.log("jsonchartData", data.data.jsonchartData);
// test that JSONdata is a string
console.log("jsonchartData tests", typeof data.data.jsonchartData, typeof JSON.stringify(data.data.jsonchartData));
var lineChartData = data.data.jsonchartData;
// parsing this string requires double-quotes, not single
lineChartData = lineChartData.replace(/'/g, '"');
console.log('JSON string:', lineChartData);
try {
var parsedData = JSON.parse([lineChartData]); // this creates an array that can be mapped
console.log('Parsed data:', parsedData);
if (Array.isArray(parsedData)) {
console.log('Parsed data is an array');
var xLabel = parsedData.map(d => d.xLabel);
var yLabel = parsedData.map(d => parseFloat(d.yLabel.toFixed(2)));
console.log("xLabel", xLabel);
console.log("yLabel", yLabel);
} else {
console.log('Parsed data is not an array');
}
} catch (e) {
console.error('Error parsing JSON:', e);
}