来自String的JQuery自动完成对象数组

时间:2015-07-09 13:44:07

标签: javascript jquery autocomplete

为了满足JQuery自动完成功能,我现在使用了这个初始化代码:

var KdNameTags = [{label:"...", idx:0},{label:"...", idx:1},{...}]

这很好用,它初始化一个对象数组,每个对象包含一个属性“label”和“idx”,就像自动完成所要求的那样。如果需要,请参阅JQuery文档中的详细信息。现在,我希望通过字符串变量传递定义,例如:

var strTags = '{label:"...", idx:0},{label:"...", idx:1},{...}';

但我无法弄清楚我是如何继续进行的,而且我有Javascript从该字符串创建对象数组。

var KdNameTags = [strTags] 

当然没有诀窍......

3 个答案:

答案 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;
&#13;
&#13;

答案 1 :(得分:2)

您可以将"[]"添加到字符串变量中,然后使用 eval() 来创建对象数组。

var strTags = '[{label:"...", idx:0},{label:"...", idx:1}]';
var yourObject = eval(strTags)

答案 2 :(得分:0)

你可以在replace()和JSON.parse()

的帮助下做这样的事情

&#13;
&#13;
var strTags = '{label:"...", idx:0},{label:"...", idx:1}';

var json = JSON.parse('[' + strTags.replace(/({|,)\s*(\w+)\s*:/g, '$1"$2":') + ']');

console.log(json);
&#13;
&#13;
&#13;