为了满足JQuery自动完成功能,我现在使用了这个初始化代码:
var KdNameTags = [{label:"...", idx:0},{label:"...", idx:1},{...}]
这很好用,它初始化一个对象数组,每个对象包含一个属性“label”和“idx”,就像自动完成所要求的那样。如果需要,请参阅JQuery文档中的详细信息。现在,我希望通过字符串变量传递定义,例如:
var strTags = '{label:"...", idx:0},{label:"...", idx:1},{...}';
但我无法弄清楚我是如何继续进行的,而且我有Javascript从该字符串创建对象数组。
var KdNameTags = [strTags]
当然没有诀窍......
答案 0 :(得分:2)
var strTags = '{"label":"...", "idx":0},{"label":"...", "idx":1}';
var arr = JSON.parse("[" + strTags + "]");
console.log(arr);
$("pre").text(JSON.stringify(arr, null, 2));

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<pre></pre>
&#13;
答案 1 :(得分:2)
您可以将"[]"
添加到字符串变量中,然后使用 eval() 来创建对象数组。
var strTags = '[{label:"...", idx:0},{label:"...", idx:1}]';
var yourObject = eval(strTags)
答案 2 :(得分:0)
你可以在replace()和JSON.parse()
的帮助下做这样的事情
var strTags = '{label:"...", idx:0},{label:"...", idx:1}';
var json = JSON.parse('[' + strTags.replace(/({|,)\s*(\w+)\s*:/g, '$1"$2":') + ']');
console.log(json);
&#13;