-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 に答える