1

私は次のようなjson文字列を持っています

string js=[{"Name":"Pini","ID":"111"},

{"Name":"Yaniv","ID":"123"},

{"Name":"Yoni","ID":"145"}]

そして、Javaスクリプトを使用してこれを次の形式のように変換する必要があります。

[['Pini',111],['Yaniv',123],['Yoni',145]]

javascript関数を使用してjson文字列をjavascript配列に変換するにはどうすればよいですか?

4

5 に答える 5

2

私はこのようなことを考えます:

var ret = [];

for (var i = 0; i < js.length; i++) {
    ret.push([js[i].Name, js[i].ID]);
}

// ret holds your array of arrays

または次のようなもの:

var ret = $.map(js, function (el, i) {
    return [[el.Name, el.ID]];
});

両方の例: http://jsfiddle.net/RNY8M/

于 2012-11-02T06:39:48.297 に答える
1

あなたはこのようにすることができます

以下のコードの JsFiddler デモ

var JSONObject = {"results":[{"Name":"Pini","ID":"111"},
                  {"Name":"Yaniv","ID":"123"},
                             {"Name":"Yoni","ID":"145"}]};


var Users= [];

$.each(JSONObject.results, function(i, obj)
       {
    alert(obj.Name);
    alert(obj.ID);
    Users.push([obj.Name, obj.ID]);
});​
于 2012-11-02T06:39:39.433 に答える
-1

これが単純なオブジェクトで機能するソリューションです(ただし、深いオブジェクトではありませんが、実装はお任せします)。

http://jsfiddle.net/eUtkC/

var js = [{
    "Name": "Pini",
    "ID": "111"},
{
    "Name": "Yaniv",
    "ID": "123"},
{
    "Name": "Yoni",
    "ID": "145"}]

function obj2arr(obj) {
    var i, key, length = obj.length,
        aOutput = [],
        aObjValues;
    for (i = length - 1; i >= 0; i--) {
        aObjValues = [];
        for (key in obj[i]) {
            if (obj[i].hasOwnProperty(key)) {
                aObjValues.push(obj[i][key]);
            }
        }
        aOutput.push(aObjValues);
    }
    return aOutput;
}

document.write(JSON.stringify(obj2arr(js)))​

編集

これが使用しているバージョンArray.prototype.mapです:

http://jsfiddle.net/eUtkC/1/

function obj2arr(obj) {
    var key, aOutput = [];
    for (key in obj) {
        if (obj.hasOwnProperty(key)) {
            aOutput.push(obj[key]);
        }
    }
    return aOutput;
}

document.write(JSON.stringify(js.map(obj2arr)))​
于 2012-11-02T13:43:14.650 に答える