动态更改javascript变量的值

时间:2018-03-15 09:32:06

标签: javascript quotes

我有javascript变量var result如下所示,其java变量具有像这样的JSON数据

var result = <%=JsonData1%> ;
alert(result.toSource());

上面的代码类似于此警告消息

上显示的代码
 var result= [{"year":"12","value":"6694"},{"year":"13","value":"50"},{"year":"08","value":"4776"},{"year":"09","value":"29006"},{"year":"10","value":"1751"}];

但我需要在JSON数据上放一个引号

'[{"year":"12","value":"6694"},{"year":"13","value":"50"},{"year":"08","value":"4776"},{"year":"09","value":"29006"},{"year":"10","value":"1751"}]'

并将其放在新的javascript变量中,如此

var json_pre =  result;
alert(json_pre);

但当我更改放置在新result变量中的json_pre数据时,如此链接How to add single quote in the variable in Javascript?

var json_pre =  "'" +result+ "'";
alert(json_pre.toSource());

然后json数据在警告信息

上显示我这样
'[{year:(new Date(-2208058200000)), value:6694}, {year:(new Date(-2207971800000)), value:50}, {year:(new Date(-2208403800000)), value:4776}, {year:(new Date(-2208317400000)), value:29006}, {year:(new Date(-2208231000000)), value:1751}]'

因为我已经尝试过在链接上给我的每一种方法。所以任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

result不是JSON,而是JavaScript对象。

您需要做的是将stringify您的对象转换为JSON,然后添加引号:

&#13;
&#13;
var result = [{"year":"12","value":"6694"},{"year":"13","value":"50"},{"year":"08","value":"4776"},{"year":"09","value":"29006"},{"year":"10","value":"1751"}];
var result_pre = "'" + JSON.stringify(result) + "'";
console.log(result_pre);
&#13;
&#13;
&#13;

但是,为什么你甚至需要它,这是值得怀疑的。

答案 1 :(得分:0)

您需要了解单引号不会使对象成为字符串。当你试图将它存储在一个变量中时我猜你又犯了同样的错误。

当你这样做时

a={"key":"value"}
b="'" + a + "'";

如果要将JSON字符串存储在需要执行此操作的变量中,您将获得控制台的字符串表示

var json = JSON.stringify(result);
alert(json);

你不需要引用。