asp.net和javascript数组的奇怪行为
这是我先前关于VisualStudio显示asp.net和javascript数组的奇怪行为,javascript,asp.net,Javascript,Asp.net,这是我先前关于VisualStudio显示“而不是”的问题的后续内容 当我运行下面的代码时,它会创建一个javascript数组,并以res[0]的形式返回,如下所示: ["Name","Name","Name"] 在visual studio中,它返回以下内容: "["Name","Name","Name"]" 当我运行代码时,这部分仍然显示周围的语音标记(AutoCompletedData): 这会导致代码无法工作。当我手动删除周围的双引号时,一切正常 我已尝试删除字符串的开始和结束部分
“
而不是”
的问题的后续内容
当我运行下面的代码时,它会创建一个javascript数组,并以res[0]
的形式返回,如下所示:
["Name","Name","Name"]
在visual studio中,它返回以下内容:
"["Name","Name","Name"]"
当我运行代码时,这部分仍然显示周围的语音标记(AutoCompletedData):
这会导致代码无法工作。当我手动删除周围的双引号时,一切正常
我已尝试删除字符串的开始和结束部分,但它只删除了[
和]
,这表明字符串根本没有被双引号包围。我还尝试删除所有双引号,但没有效果
有人能解释出哪里出了问题吗
var urlMethod = "/ajax.aspx/GetTeamMemberNamesList";
var params = new Object();
var result;
params.TeamID = 123;
result = SendAjaxSingleValue(urlMethod, params);
var res = result.d.split("|");
var autocompletedata = res[0];
autocompletedata.replace(/['"]+/g, '')
autocomplete(document.getElementById("rd-search-form-input"), autocompletedata );
嗯,这很烦人-这解决了我的问题:
autocomplete(document.getElementById("rd-search-form-input"), JSON.parse(autocompletedata));
为了澄清OP中的解决方案,ajax调用返回的不是数组本身,而是JSON字符串,这在从web服务器接收数据时总是如此-因此为什么
res[0]
返回为[“Name”,“Name”,“Name”]
因此,为了将响应文本转换为实际数组,需要JSON.parse
来执行转换
autocomplete(document.getElementById("rd-search-form-input"), JSON.parse(autocompletedata));