gpt4 book ai didi

jquery - 使用 jquery .ajax 中的 dataFilter 和 json 数据

转载 作者:行者123 更新时间:2023-12-01 07:07:04 26 4
gpt4 key购买 nike

如何从来自 ajax 调用的 JSON 数据生成修改后的有效 JSON 数据字符串。有必要使用 dataFilter 来完成此操作。

ajax调用的retData(返回的数据)是:

{"8":"vacation","7":"birthday","5":"summer","4":"2013","3":"2014","6":"winter","2":"2015","1":"2016"}

JS代码:

'dataFilter': function (retData, json) {
console.log('retData='+retData);
data = [];
$.map(retData, function (value,key) {
console.log('indx=i'+key+', value='+value);
node = {
'id' : 'i'+key,
'text' : value,
'icon' : '/',
'data' : value, //'metadata' : value,
'state' : {'opened' : false},
'children' : true
}
data.push( node );
});
console.log('final-data='+data);
return data;
//return JSON.stringify(data);
}

但我在浏览器控制台中收到错误:似乎 $.map 在“dataFilter”中运行时出现问题,它在“success”调用中运行良好(但插件严格希望在“dataFilter”中完成处理)

TypeError: invalid 'in' operand a
https://www.localhost.com/jscript/jquery/jquery-2.2.0.min.js
Line 2

最佳答案

dataFilter 的参数都是 docs 中的字符串。 。您需要先将 retData 转换为对象,然后才能对其调用 $.map:

  'dataFilter': function(retData, json) {
data = [];
$.map(JSON.parse(retData), function(value, key) {
console.log('indx=i' + key + ', value=' + value);
node = {
'id': 'i' + key,
'text': value,
'icon': '/',
'data': value, //'metadata' : value,
'state': {
'opened': false
},
'children': true
}
data.push(node);
});
console.log('final-data=' + JSON.stringify(data));
return data;
//return JSON.stringify(data);
},

Fiddle

关于jquery - 使用 jquery .ajax 中的 dataFilter 和 json 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39217240/

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