0

外部ファイルpeople.jsonがあります。JSON構文でJavaScript配列に変換するにはどうすればよいですか?
これはpeople.jsonの内容です:

{
"1":{
    "Name":"Jhon",
    "Surname":"Kenneth",
    "mobile":329129293,
    "email":"jhon@gmail.com"
},
"2":{
    "Name":"Thor",
    "Surname":"zvalk",
    "mobile":349229293,
    "email":"thor@gmail.com"
},
"3":{
    "Name":"Mila",
    "Surname":"Kvuls",
    "mobile":329121293,
    "email":"mila@gmail.com"
}
}

この形式の配列が欲しい

var person = [
{ "name":"jhon" , "surname":"kenneth", "mobile":329129293, "email":"jhon@gmail.com"}, 
{ "Name":"Thor", "Surname":"zvalk", "mobile":349229293, "email":"thor@gmail.com" }, 
{ "Name":"Mila", "Surname":"Kvuls", "mobile":329121293, "email":"mila@gmail.com"}
];

次のコードを試してみましたが、うまくいきません:

 var person;   
$.getJSON('people.json', function (json) {
person[]= json
});

ちなみに、ファイルcontacts.jsonは私のサーバーにあります。

4

5 に答える 5

4

jQueryが使える$.map()

var newArray=$.map( originalObject, function(item){
    return item;
})

デモ: http://jsfiddle.net/qmfn2/

于 2013-01-26T19:52:33.573 に答える
3

このようにしてみてください:

$.getJSON('people.json', function (json) {
    var people = [];
    for (var key in json) {
        if (json.hasOwnProperty(key)) {
            var item = json[key];
            people.push({
                name: item.Name,
                surname: item.Surname,
                mobile: item.mobile,
                email: item.email
            });            
        }
    }

    // at this stage the people object will contain the desired output
});
于 2013-01-26T19:49:23.110 に答える
1

まず、AJAX リクエストを使用して JSON ファイルをフェッチする必要があります。次に、受け取った JSON オブジェクトを繰り返し処理し、各プロパティを配列に追加します。

function convertToArray (receivedObj) {
    var array = [], key;
    for (key in receivedObj) {
        array.push(receivedObj[key]);
    }
    return array;
}

$.getJSON('people.json', function (json) {
    var array = convertToArray(json);
});

お役に立てれば!

于 2013-01-26T19:50:44.373 に答える
1

このような:

var array = $.map($.parseJSON(data), Object);

http://jsfiddle.net/mXFKL/

于 2013-01-26T20:04:21.457 に答える
1
$.getJSON('people.json', function (json) {
var array = convertToArray(json);
});
于 2013-01-29T18:40:07.587 に答える