Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON.parse字符串变量中的标签数据_Javascript_Chart.js - Fatal编程技术网

Javascript JSON.parse字符串变量中的标签数据

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

我在下面有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
   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”;