Javascript JSON.parse字符串变量中的标签数据
我在下面有2个变量来更新图表的数据集和标签Javascript JSON.parse字符串变量中的标签数据,javascript,chart.js,Javascript,Chart.js,我在下面有2个变量来更新图表的数据集和标签 function updateChart(){ var newdatasets= "[10, 20, 30, 40]"; var newlabels= "['label1', 'label2', 'label3', 'label4']"; myChart.data.datasets[0].data = JSON.parse(newdatasets); //this work myCha
function updateChart(){
var newdatasets= "[10, 20, 30, 40]";
var newlabels= "['label1', 'label2', 'label3', 'label4']";
myChart.data.datasets[0].data = JSON.parse(newdatasets); //this work
myChart.data.labels = JSON.parse(newlabels); //this does not work
}
为什么JSON.parse与新数据集
一起工作,而与新标签
一起工作?JSON.parse(newdataset)
成功更新了图表数据集,但JSON.parse(newlabels)
未能更新图表标签。我能做些什么来解决这个问题
不要要求我在没有“
的情况下将var值更改为['label1'、'label2'、'label3'、'label4']
。我知道这会起作用,但我希望图表从这种var值更改
感谢您的帮助。新标签的JSON字符串格式错误。让我们使用escape更改
“
”
这将有助于:
var newlabels=“[\“label1\”、\“label2\”、\“label3\”、\“label4\””;
myChart.data.labels=JSON.parse(newlabels);
变量
newdatasets
与JSON.parse
一起工作,因为它的元素是数字。变量newlabels
具有错误的JSON字符串格式。让我们用escape改变“
”
这将有助于:
var newlabels=“[\“label1\”、\“label2\”、\“label3\”、\“label4\””;
myChart.data.labels=JSON.parse(newlabels);
变量newdatasets
与JSON.parse一起工作,因为它的元素是number。是有效的JSON。因此下面的代码可以工作
这两个例子都有效。您只需要将双引号作为字符串本身的一部分
var newlabels2='[“label1”、“label2”、“label3”、“label4”];
log(JSON.parse(newlabels2));
var newlabels3=“[\'label1\'、\'label2\'、\'label3\'、\'label4\'”;
console.log(JSON.parse(newlabels3));
是有效的JSON。因此下面的代码可以工作
这两个例子都有效。您只需要将双引号作为字符串本身的一部分
var newlabels2='[“label1”、“label2”、“label3”、“label4”];
log(JSON.parse(newlabels2));
var newlabels3=“[\'label1\'、\'label2\'、\'label3\'、\'label4\'”;
console.log(JSON.parse(newlabels3));
JSON不支持单引号,因此此代码:
var newlabels=“['label1','label2','label3','label4']”;
变成这样:
var newlabels='[“label1”、“label2”、“label3”、“label4”];
JSON不支持单引号,因此此代码:
var newlabels=“['label1','label2','label3','label4']”;
变成这样:
var newlabels='[“label1”、“label2”、“label3”、“label4”];
为此,您甚至不需要转义,您可以简单地使用var newlabels='[“label1”、“label2”、“label3”、“label4”];
为此,您甚至不需要转义,您可以简单地使用var newlabels='[“label1”、“label2”、“label3”、“label4”;