Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery.ajax中的dataFilter和json数据_Jquery_Json_Ajax - Fatal编程技术网

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

使用jquery.ajax中的dataFilter和json数据,jquery,json,ajax,Jquery,Json,Ajax,如何从来自ajax调用的JSON数据生成修改后的VALD 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('

如何从来自ajax调用的JSON数据生成修改后的VALD 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);
}
但相反,我在浏览器控制台中遇到了错误:在“dataFilter”中运行时,$.map似乎有问题,在“success”调用中运行良好(但插件严格要求在“dataFilter”中完成处理)


dataFilter的参数都是字符串。您需要先将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);
  },

数据过滤器的参数都是字符串。您需要先将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);
  },