Ajax响应转换 [英] Ajax response conversion

查看:73
本文介绍了Ajax响应转换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个由ajax返回的数组:

I have this array that is returned by ajax:

console.log(res);
["07Apr|1", "06Apr|3", "05Apr|12", "04Apr|11", "03Apr|0", "02Apr|0", "01Apr|6", "31Mar|0", "30Mar|7", "29Mar|16", "28Mar|5", "27Mar|5", "26Mar|12", "25Mar|9", "24Mar|4", "23Mar|10", "22Mar|16", "21Mar|2", "20Mar|19", "19Mar|22", "18Mar|10", "17Mar|11", "16Mar|10", "15Mar|19", "14Mar|0", "13Mar|4", "12Mar|14", "11Mar|5", "10Mar|26", "09Mar|7", "08Mar|5"] 

我使用JSON.stringify转换此数组:

I convert this array using JSON.stringify:

(变量"res"是我的ajax的响应,如上所示)

(The variable "res" is the response of my ajax -as shown above)

            var obj = [];
            var daysBack = 30;
            var objItem = {};
            for(var x = 0; x <= daysBack; x++){
                var currObj = res[x];
                var objCombo = currObj.split("|");
                var objItem = "{date: '"+objCombo[0]+"', downloads: '"+objCombo[1]+"'}";
                objItem = JSON.stringify(eval("(" + objItem + ")"));
                obj.push(objItem);
            }

将"obj"转储到控制台时,我得到:

When I dump the "obj" to the console I get:

console.log(obj); 
["{"date":"07Apr","downloads":"1"}", "{"date":"06Apr","downloads":"3"}", "{"date":"05Apr","downloads":"12"}", "{"date":"04Apr","downloads":"11"}", "{"date":"03Apr","downloads":"0"}", "{"date":"02Apr","downloads":"0"}", "{"date":"01Apr","downloads":"6"}", "{"date":"31Mar","downloads":"0"}", "{"date":"30Mar","downloads":"7"}", "{"date":"29Mar","downloads":"16"}", "{"date":"28Mar","downloads":"5"}", "{"date":"27Mar","downloads":"5"}", "{"date":"26Mar","downloads":"12"}", "{"date":"25Mar","downloads":"9"}", "{"date":"24Mar","downloads":"4"}", "{"date":"23Mar","downloads":"10"}", "{"date":"22Mar","downloads":"16"}", "{"date":"21Mar","downloads":"2"}", "{"date":"20Mar","downloads":"19"}", "{"date":"19Mar","downloads":"22"}", "{"date":"18Mar","downloads":"10"}", "{"date":"17Mar","downloads":"11"}", "{"date":"16Mar","downloads":"10"}", "{"date":"15Mar","downloads":"19"}", "{"date":"14Mar","downloads":"0"}", "{"date":"13Mar","downloads":"4"}", "{"date":"12Mar","downloads":"14"}", "{"date":"11Mar","downloads":"5"}", "{"date":"10Mar","downloads":"26"}", "{"date":"09Mar","downloads":"7"}", "{"date":"08Mar","downloads":"5"}"]

现在,我要从此格式更改上面的数组格式:

Now, I want to change the above array format from this one:

["{"date":"07Apr","downloads":"1"}", "{"date":"06Apr","downloads":"3"}", "{"date":"05Apr","downloads":"12"}", "{"date":"04Apr","downloads":"11"}", ....]

到那个:

[{"date":"07Apr","downloads":"1"}, {"date":"06Apr","downloads":"3"}, {"date":"05Apr","downloads":"12"}, {"date":"04Apr","downloads":"11"}, ....]

我的意思是消除用大括号括住对象的双引号.

I mean to eliminate the double quotes that enclose the objects in curly braces.

任何想法将不胜感激...

Any ideas would be appreciated...

推荐答案

您可以解析从ajax响应接收到的数据以创建数组.

You can parse the data you received from the ajax response to create the array.

var populateArray = function (ajaxResponse) {
    var newArray = [];
    ajaxResponse.forEach(function (item, index) {
        var props = item.split('|');
        var obj = {
            date: props[0],
            downloads: props[1]
        };
        newArray.push(obj)
    });

    return newArray;
}

为演示,请尝试

console.log(populateArray(["07Apr|1", "06Apr|3", "05Apr|12", "04Apr|11", "03Apr|0", "02Apr|0", "01Apr|6", "31Mar|0", "30Mar|7", "29Mar|16", "28Mar|5", "27Mar|5", "26Mar|12", "25Mar|9", "24Mar|4", "23Mar|10", "22Mar|16", "21Mar|2", "20Mar|19", "19Mar|22", "18Mar|10", "17Mar|11", "16Mar|10", "15Mar|19", "14Mar|0", "13Mar|4", "12Mar|14", "11Mar|5", "10Mar|26", "09Mar|7", "08Mar|5"]));

这篇关于Ajax响应转换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆