Javascript对象字符串/引号问题

时间:2018-04-11 11:01:03

标签: javascript

我有这段代码:

var selectdata = {
     "tablename": "dbo.vw_bla",
     "where": "ID_Prod like @idprod",
     "whereparameters": [{
         "name": "idprod",
         "value": ' +  $(prodvariable) + ',
         "type": "varchar"
     }],
     "orderby": "ID_Prod ASC"
 };

prodvariable是一个已存储数字的变量。例如6

这应该作为6传递。

我尝试了几种引号,转义,+等组合,但我无法找到正确的方法。

3 个答案:

答案 0 :(得分:1)

如果你想传递prodvariable作为数字尝试如下

var prodvariable = 6
var selectdata = {
     "tablename": "dbo.vw_bla",
     "where": "ID_Prod like @idprod",
     "whereparameters": [{
         "name": "idprod",
         "value": prodvariable,
         "type": "varchar"
     }],
     "orderby": "ID_Prod ASC"
 };

如果你想将变量作为字符串传递,请尝试如下

var prodvariable = 6
var selectdata = {
     "tablename": "dbo.vw_bla",
     "where": "ID_Prod like @idprod",
     "whereparameters": [{
         "name": "idprod",
         "value": `${prodvariable}`, 
         "type": "varchar"
     }],
     "orderby": "ID_Prod ASC"
 };

您可以执行以下方法之一将prodvariable传递给json对象。

  

" value":prodvariable //如果prodvariable,这将作为数字传递   是数字

     

"价值":${prodvariable}

     

OR

     

"价值":'"' + prodvariable +'"',

答案 1 :(得分:0)

prodvariable您不需要任何引号。直接在值中使用该变量:

var prodvariable = '6';
var selectdata = {"tablename":"dbo.vw_bla", 
                  "where":"ID_Prod like @idprod",
                  "whereparameters": [
                  {"name": "idprod", 
                  "value":  prodvariable , 
                  "type":"varchar"}],
                  "orderby":"ID_Prod ASC"};
console.log(selectdata);

答案 2 :(得分:0)

如果我理解正确,你想使用prodvariable变量的值,但用双引号括起来?您可以使用ES2015字符串模板文字来完成此操作:

{ "value":  `"${prodvariable}"` }

然后value将是"6"

您也可以通过简单的字符串连接获得相同的结果:

{ "value":  '"' + prodvariable + '"' }