JQuery自动完成数组对象从字符串

JQuery Autocomplete Array of Objects from String

本文关键字:对象 字符串 数组 JQuery      更新时间:2023-09-26

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

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

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

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

但是我不知道我需要如何继续,我有Javascript从该字符串创建对象数组。

var KdNameTags = [strTags] 
当然,

它不起作用……

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>

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

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

在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);