2017-04-23 1 views
0

Je souhaite enregistrer des objets dans un tableau. J'ai des objets JSON et je veux enregistrer chaque objet dans un tableau pour accéder à chaque élément seul. Quelqu'un peut-il m'aider?Comment enregistrer des objets JSON dans un tableau

toArray = JSON.parse(res.body) 

categ = Array.new 
i = 0 

toArray.each do |object| 
newMyObject = MyObject.new(object) 
categ = Array.new(i, newMyObject) 
i = i+1 
end 
+0

merci pour votre commentaire. Comment puis je faire ça? Je dois accéder à chaque élément dans le json plus tard. –

+0

En guise de note, Ruby encourage fortement l'utilisation de variables et de noms de méthodes en minuscules seulement, donc 'to_array' est attendu ici. Les majuscules sont réservées aux situations 'ClassName' ou' CONSTANT_NAME'. – tadman

Répondre

2

Essayez celui

array_from_json = JSON.parse(res.body) 
objects_array = array_from_json.map { |item| MyObject.new(item) } 

Le problème dans votre code est que vous créez un nouveau tableau chaque itération.

+0

merci. Pouvez-vous m'expliquer, que fait exactement le code? –

+0

Probablement vous ne connaissez pas la méthode map. Cela vous permet de transformer chaque élément d'un tableau et de retourner un nouveau tableau. Dans ce cas, nous transformons chaque élément de json en objet MyObject et le résultat est dans l'objet array objects_array. – Ursus

+0

i obtenir l'erreur: « MyObject constante initialisés (NameError) Vouliez-vous dire l'objet \t de test: 51: dans' chaque ' \t de test: 51: dans 'map' \t de test: 51: dans'

' "Pouvez-vous m'aider s'il vous plaît? –