-1

目前,我尝试将我的 JSON 数据改造成字典,以便仅将所需的数据存储在具有键和值的数组中。

* 编辑以放置我的完整代码。*

这就是我的做法:

var myData = [];
var urlPath = "https://tipjira.pgdev.abcd.com/rest/api/2/search?jql=project=GRIFR14%2Band%2BfixVersion=15018";
var jiraMapping = [];

$.ajax({
    url : "http://frparwself22.dhcp.par.abcd.com:8080/jiraproxy/jira?url=" + urlPath,
    dataType : 'json',
    type: 'GET',

    success : function(data) {
        for (var i=0; i<data.issues.length; i++) {
            var obj = {};
            obj[data.issues[i].key] = data.issues[i].self;
            jiraMapping.push(obj);      
            alert(jiraMapping.length);
        }
    },
    error : function() {
        alert("Error!")
    }
});

alert(jiraMapping.length);

我的原始数据是 {issues:[{...,"self":"/rest/api/2/issue/175074","key":"GRIFR14-36",...}, {..., "self":"/rest/api/2/issue/175075","key":"GRIFR14-37",...}, ...]}。我想改革以拥有键和值的数组,它们是键和自我。

所以我的 jiraMapping 中的数据应该类似于[{k1:v1}, {k2,v2}, ...]. 但是当我厌倦了打印 jiraMapping 的长度时,长度为 0。我试图发出警报来检查我添加到数组中的键和值并且值存在。

我不知道问题到底出在哪里。请帮忙...

4

2 回答 2

0

问题在于您收到的数据,或者您稍后在检查长度时有错字。这一切看起来都很好,我试着像这样复制你的问题:

var jiraMapping = [];    
var myData = [{"A":"a"},{"B":"b"}];
for (var i=0; i<myData.length; i++) {
var obj = {};
obj[myData[i]] = myData[i];
jiraMapping.push(obj);    
}
console.log(jiraMapping);

但这很好用,在这里摆弄:http: //jsfiddle.net/GWpBs/2/

于 2013-05-02T15:09:37.747 回答
0

在不确切知道您传递的信息的情况下,很难说出了什么问题。话虽如此,我的第一个猜测是data/myData的格式不符合您的想法。例如,如果myData.issues.length0,则循环中的任何内容都不会被执行。

您也有可能从未真正运行过该success功能。你能发布更多的代码吗?

于 2013-05-02T15:04:57.063 回答