Javascript ile nesneler içeren bir JSON dizisi kullanma

Nesneler içeren bir JSON dizisi alacak bir fonksiyonum var. Fonksiyonda dizi boyunca döngü yapabileceğim, bir özelliğe erişebileceğim ve bu özelliği kullanabileceğim. Bunun gibi:

Fonksiyona aktaracağım değişken şu şekilde görünecek:

[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]

function test(myJSON)
{
    // maybe parse my the JSON variable?
    // and then I want to loop through it and access my IDs and my titles
}

Bunu nasıl çözebileceğime dair bir öneriniz var mı?

Bu tek bir JSON nesnesi değildir. JSON nesnelerinden oluşan bir diziniz var. Önce dizi üzerinde döngü yapmanız ve ardından her nesneye erişmeniz gerekir. Belki aşağıdaki başlangıç örneği yardımcı olabilir:

var arrayOfObjects = [{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}];

for (var i = 0; i < arrayOfObjects.length; i++) {
    var object = arrayOfObjects[i];
    for (var property in object) {
        alert('item ' + i + ': ' + property + '=' + object[property]);
    }
    // If property names are known beforehand, you can also just do e.g.
    // alert(object.id + ',' + object.Title);
}

JSON hakkında daha fazla bilgi edinmek için bu makaleye göz atın.

Güncelleme: JSON nesneleri dizisi aslında düz bir vanilya dizesi olarak geçirilirse, o zaman burada gerçekten eval()a ihtiyacınız olacaktır.

var string = '[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]';
var arrayOfObjects = eval(string);
// ...
Yorumlar (5)

Nesneler içeren JSON dizisi derken 'JSON içeren bir dizeyi mi kastediyorsunuz?

Eğer öyleyse, güvenli var myArray = JSON.parse(myJSON) yöntemini (yerel veya JSON2 kullanılarak dahil edilmiş) veya güvenli var myArray = eval("(" + myJSON + ")") yöntemini kullanabilirsiniz. eval yönteminden normalde kaçınılmalıdır, ancak içeriğin güvenli olduğundan eminseniz, o zaman sorun yoktur.

Bundan sonra dizi üzerinde normal şekilde yineleme yaparsınız.

for (var i = 0; i < myArray.length; i++) {
    alert(myArray[i].Title);
}
Yorumlar (0)

Sorunuz biraz eksik gibi görünüyor, ancak sanırım aradığınız şey JSON'unuzu kodunuz için erişilebilir hale getirmenin bir yolu:

Yukarıdaki gibi JSON dizesine sahipseniz, sadece şunu yapmanız gerekir

var jsonObj = eval('[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]');

daha sonra bu değişkenlere jsonObj[0].id vb. gibi bir şeyle erişebilirsiniz

Eğer kastettiğiniz bu değilse bana bildirin, size yardımcı olmaya çalışayım.

M

Yorumlar (2)