gpt4 book ai didi

javascript - 如何将 AJAX 返回的字符串转换为对象的 javascript 数组

转载 作者:行者123 更新时间:2023-11-30 13:07:58 25 4
gpt4 key购买 nike

我正在使用 jqGrid 并希望使用 Coldfusion 返回的 ajax 来构建 colModel 数组。

当我像下面这样在客户端上创建数组 cm 时,这是有效的。

function subTab(obj,id,tab){
var param={id:id,tab:tab}
http('POST','cfc/view/'+obj+'.cfc?method=view',subTab_RTN,param);
}
function subTab_RTN(obj){
$("#detail").html(obj.html);
if(obj.grid.display){
var cm;
switch(obj.grid.tab){
case "docs":
cm=[{name:'contactID',index:'contactID',hidden:true},
{name:'docName',index:'docName',width:200,label:'Document Name'},
{name:'docType',index:'docType',width:200,label:'Document Type'},
{name:'campaign',index:'campaign',width:200,label:'Campaign'},
{name:'campaignCode',index:'campaignCode',width:125,label:'Campaign Code'},
{name:'campaignType',index:'campaignType',width:125,label:'Campaign Type'},
{name:'downloadDate',index:'downloadDate',width:125,label:'Download Date',formatter:'date'}];
break;
}
$("#subTabGridTbl").jqGrid({
url:obj.grid.url,
datatype: "json",
colModel:cm,
...

不过,我更愿意在服务器上创建数组,例如:

 <cfset rtn.grid.cols="[{name:'contactID',index:'contactID',hidden:true},
{name:'docName',index:'docName',width:200,label:'Document Name'},
{name:'docType',index:'docType',width:200,label:'Document Type'},
{name:'campaign',index:'campaign',width:200,label:'Campaign'},
{name:'campaignCode',index:'campaignCode',width:125,label:'Campaign Code'},
{name:'campaignType',index:'campaignType',width:125,label:'Campaign Type'},
{name:'downloadDate',index:'downloadDate',width:125,label:'Download Date',formatter:'date'}]" />

然后使用返回的 obj (obj.grid.cols) 构建数组。

感谢您的帮助。加里

最佳答案

JSON.parse()supported在大多数主流浏览器中。如果需要支持IE7及以下,相信可以用jQuery.parseJSON()得到相同的结果。这两种方法都需要格式正确的 JSON 字符串。

顺便说一句,我建议您将数组创建为原生 CF 结构数组,然后使用 serializeJSON()将其转换为 JSON 字符串。这将有助于最大程度地减少您在尝试手动编写 JSON 字符串时遇到的任何问题。

关于javascript - 如何将 AJAX 返回的字符串转换为对象的 javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14970134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com