javascript意外的非法令牌

时间:2015-12-31 20:00:18

标签: javascript

当我运行此代码时,我收到“Uncaught SyntaxError:Unexpected token ILLEGAL”错误

str += "{'value': "+ response_imdb[count] +",
      'color':#"+ colorValue +",
      'label': "+ response_labels[count] +"
     }";

感谢。

3 个答案:

答案 0 :(得分:2)

这是另一种简单的方法。

str += JSON.stringify({
  value: response_imdb[count],
  color: '#' + colorValue,
  label: response_labels[count]
});
         

答案 1 :(得分:2)

在JavaScript中,您不能拥有多行字符串(unless you add a backslash to the end of each line)。

将它们设为多个字符串并使用+连接它们,如下所示:

str += "{'value': "+ response_imdb[count] +"," +
  "'color':#"+ colorValue +"," +
  "'label': "+ response_labels[count] +
 "}";

答案 2 :(得分:2)

Javascript不允许字符串中的换行符。你在每一行末尾的",之后产生换行符。你应该把它改成:

str += "{'value': "+ response_imdb[count] +",\n"+
      'color':#"+ colorValue +",\n"+
      'label': "+ response_labels[count] +",\n"+
     }";

但尝试手动创建JSON字符串几乎总是错误的。使用函数,例如Javascript中的JSON.stringify,PHP中的json_encode等。

那里还有其他一些问题。如果字符串将被解析为JSON,则属性名称必须是双引号,而不是单引号。 # + colorValue需要在引号中作为字符串。