Comment faire pour récupérer aléatoire objet JSON par la clé de dictionnaire JSON?

J'ai un objet JSON qui se compose d'une longue liste d'autres objets JSON qui ont en commun certaines propriétés de chaque autres :

var myData = { 
    "0291" : { "Firstname" : "Jeremy", "Surname" : "Dyson" },
    "0398" : { "Firstnname" : "Billy", "Surname" : "Bunter" },
    "6714" : { "Firstnname" : "Harry", "Surname" : "Peterson" },
    "9080" : { "Firstnname" : "Barry", "secondname": "Joe", "Surname" : "Mainwaring"}
    ...
    ...
}

J'ai déjà construit un modèle html. Avec le JS, je veux choisir ou iterate (random pick + boucle) à travers les objets dans les données{} dans ordre aléatoire, afin que je puisse remplir le code HTML à la volée pour chaque visiteur. La partie aléatoire est important, de sorte que chaque visiteur de chance d'obtenir différentes données.

Plaine JavaScript ou jQuery solutions fonctionnent dans le contexte dans lequel ce qui est en cours de déploiement.


EDIT: Solution que j'ai mis en place est ci-dessous.

1. Collecter toutes les clés :

var keyArray = Object.keys(myData);

2. La fonction de lecture aléatoire:

function shuffle(o){ //v1.0
    for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
    return o;
};
keyArray = shuffle(keyArray); //shuffle it!

3. La boucle pour parcourir:

for (var i = 0; i < keyArray.length; ++i) {
    var current = data[keyArray[i]];
    ... //what you want to do each time.
}
Quelle est la génération de l'JSON? Me semble qu'il serait plus facile d'affecter à ce point
J'ai commencer à coder, j'écris 4000 lignes de base de données lexicale à la main. Pas de fonction aléatoire... encore !

OriginalL'auteur Hugolpz | 2013-02-04