11
votes

Analyser un tableau de rubis à JSON

J'ai quelques résultats: xxx pré>

qui ressemble à cette sortie: p> xxx pré>

débogage p> xxx

sortie p> xxx pré>

Les en-têtes sont les suivants: P>

a = result.map{|s| {status: s[0], hits: s[1].to_i, page_views: s[2].to_i} }
puts a.to_json


3 commentaires

Quel type d'objet résultat est? Un tableau? Pouvez-vous s'il vous plaît poster la sortie que vous vous attendez à obtenir?


ajouté au post original. THX


Quel code avez-vous écrit pour résoudre ce problème? C'est une chose vraiment facile à faire.


3 Réponses :


5
votes
output = "Allowed
20863963
1554906
Denied
3607325
0
Quarantined
156240 
0"

a = output.split("\n").each_slice(3).map{|s| {status: s[0], hits: s[1].to_i, page_views: s[2].to_i} } # => [{:status=>"Allowed", :hits=>20863963, :page_views=>1554906}, {:status=>"Denied", :hits=>3607325, :page_views=>0}, {:status=>"Quarantined", :hits=>156240, :page_views=>0}]
a.to_json # => => "[{\"status\":\"Allowed\",\"hits\":20863963,\"page_views\":1554906},{\"status\":\"Denied\",\"hits\":3607325,\"page_views\":0},{\"status\":\"Quarantined\",\"hits\":156240,\"page_views\":0}]"

1 commentaires

Je devais mettre à jour la sortie et le résoudre en regardant votre réponse.



2
votes

Vous attribuez vos "en-têtes" dans attr_accessor, puis dites à JSON d'analyser ce symbole. Voici un exemple: xxx

espère qu'il aide!


0 commentaires

17
votes

regarder sur to_json code> méthode.

require 'json'
# => true 
h = {a: 1, b: 2,c: 3}
# => {a: 1, b: 2,c: 3}
h.to_json
# => "{\"a\":1,\"b\":2,\"c\":3}" 


0 commentaires