2010-05-20 10 views
5

J'ai une action de contrôleur qui retourne des données JSON à des fins d'API, et beaucoup de celui-ci. Je veux être capable de l'inspecter dans le navigateur, et l'avoir bien en retrait pour le spectateur. Par exemple, si mes données sontRails - Comment afficher un JSON joliment indenté?

data = { :person => { :id => 1, :name => "john doe", :age => 30 }, :person => ... } 

Je veux voir

{ "person" : 
    { 
     "id" : 1, 
     "name" : "john doe", 
     "age" : 30, 
    }, 

    "person" : 
    { 
     "id" : 2, 
     "name" : "jane doe", 
     "age" : 31, 
    }, 

    ...etc 
} 

Dans la vue.

Je pensais que sur l'utilisation de différentes voies pour obtenir la plus grande/données assez:

# GET /api/json 
# ... 
respond_to do |format| 
    format.html { render :json => data.to_json } 
end 

# GET /api/json/inspect 
# ... 
respond_to do |format| 
    format.html { render :text => pretty_json } 
end 

Tout le monde sait d'un bijou/plugin que ce fait ou quelque chose de similaire? J'ai essayé d'utiliser JSON.pretty_generate, mais cela ne semble pas fonctionner dans les rails (2.3.5). Merci.

Répondre

3

Cela ne fonctionne qu'avec Firefox, mais en supposant que vous avez juste besoin assez JSON pour vous aider ou d'autres développeurs au cours du développement, vous devriez vérifier l'addon JSONView pour Firefox (il a rendu ma vie plus facile):

https://addons.mozilla.org/en-US/firefox/addon/10869/

Si vous voulez avoir un joli json disponible pour tous les utilisateurs quel que soit le navigateur, je n'ai pas une bonne solution à offrir.

+2

https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc Ici vous avez quelque chose de similaire pour Chrome. C'est ce que j'utilise régulièrement et je le trouve très utile. –

3

vous pouvez utiliser cette

render json: JSON.pretty_generate(data) 
+0

J'ai fait JSON.pretty_generate (user.attributes) où l'utilisateur est un objet ActiveRecord. –

+1

vous pouvez utiliser user.to_json –

+0

Exactement ce que je cherchais. Merci mon pote! – detj

0

jsonpp est un outil de ligne de commande pour la mise en forme (assez impression) JSON.

Vous pouvez diriger votre JSON en elle:

curl -s -L http://t.co/tYTq5Pu | jsonpp