Censé J'ai un tableau qui ressembleConversion d'un tableau de hachage en Ruby
testarr = [["Actor", "Morgan", "33", ["A","B"]],
["Movie", "Titanic", "44", ["A","A"]],
["Actor", "Jack Black", "333", ["A","A"]]]
Je veux convertir en une table de hachage qui sera transformé en JSON éventuellement.
Je veux qu'il ressemble
{
"Actor" => {
{ "name" : "Morgan",
"Age" : 33",
"Films: { "A", "B" }} ,
{ "name" : "Jack Black",
"Age" : 44",
"Films: { "A", "A" }}
}
"Movie" => {
{ "Title" : "Titanic"
"Gross" : "44"
"Actors" : { "A", "A" }
}
}
ne suis pas sûr du format exact, mais ce qui est logique.
J'ai essayé
def hashing(arr)
hash = Hash.new
arr.each do |item|
if item[0] == "Movie"
item.delete("Movie")
hash["Movie"] = item
item["Title"] = item[1]
item["Movie"]["Box Office"] = item[2]
item["Movie"]["Actors"] = item[3]
else
item.delete("Actor")
hash["Actor"] = item
item["Actor"]["Name"] == item[1]
item["Actor"]["Age"] == item[2]
item["Actor"]["Filmography"] == item[3]
end
end
return hash
end
testarr = [["Actor", "Morgan", "33", ["dsfds","dsfdsf"]],
["Movie", "Titanic", "44", ["dsfds","dfdsf"]],
["Actor", "Jack Black", "333", ["ssdsfds","dsfdsf"]]]
puts hashing(testarr)
Mais il me donne une erreur de mettre l'élément de tableau dans « Film » et « Acteur », puis essayer de créer des clés comme « Nom » et « âge ».
Comment puis-je faire cela comme je le désire?
Merci. Comment puis-je mettre l'âge et la filmographie d'un acteur dans la clé de nom? Comme nom => Morgan => {Âge: 33, Filmo = [...]} – user6792790