在json字符串中传递变量

时间:2015-02-06 21:56:28

标签: javascript json

我有一个简单的var,其中包含一些我转换为json对象的字符串。我想为人名创建一个输入字段,然后添加文本。

目前我有这个

var text = '{"students":[' +
'{"firstName": "Brendan","lastName":"Skousen" },' +
'{"firstName":"Scooby","lastName":"Doo" },' +
'{"firstName":"Your","lastName":"Mom" }]}';

我的输入有一个var

var first = document.getElementById('first').value;

所以我想让var文本像这样工作:

var text = '{"students":[' +
'{"firstName": first,"lastName":"Skousen" },' +
'{"firstName": first,"lastName":"Norman" },' +
'{"firstName": first,"lastName":"Coatney" }]}';

您可以在以下位置查看完整代码:http://codepen.io/bskousen/pen/xbPLew

2 个答案:

答案 0 :(得分:0)

var text = '{"students":[' +
'{"firstName": ' + escape(first) + ',"lastName":"Skousen" },' +
'{"firstName": ' + escape(first) + ',"lastName":"Norman" },' +
'{"firstName": ' + escape(first) + ',"lastName":"Coatney" }]}';

使用here中的escape

答案 1 :(得分:0)

要使其在您的示例中以您使用它的方式工作,您必须使用template engine并在变量周围添加一些额外的字符,具体取决于您使用的引擎。我认为连接对你的案例最简单

var text = '{"students":[' +
'{"firstName": ' + first + ',"lastName":"Skousen" },' +
'{"firstName": ' + first + ',"lastName":"Norman" },' +
'{"firstName": ' + first + ',"lastName":"Coatney" }]}';