2011-08-22 6 views
1

Il semble que dans Grails, la valeur par défaut contentType utilisé pour rendre une réponse JSON lorsque vous utilisez quelque chose comme ce qui suit:changement Content-Type de réponse JSON en utilisant « comme JSON » pour rendre la réponse

render Book.list(params) as JSON 

est application/json

Il y a bien sûr une plus longhanded façon de définir le type de contenu:

render(contentType:"text/json") { 
    book(title:b.title,author:b.author) 
} 

y at-il un moyen d'utiliser la manière raccourcie, et toujours obtenir un type de contenu réponse « t ext/json "?

Note: exemples tirés de here

Répondre

4

Dans votre Grails config.groovy vous pouvez définir les propriétés de type MIME suivantes.

grails.mime.types = [ html: ['text/html','application/xhtml+xml'], 
       xml: ['text/xml', 'application/xml'], 
       text: 'text/plain', 
       js: 'text/javascript', 
       rss: 'application/rss+xml', 
       atom: 'application/atom+xml', 
       css: 'text/css', 
       csv: 'text/csv', 
       all: '*/*', 
       json: ['application/json','text/json'], 
       form: 'application/x-www-form-urlencoded', 
       multipartForm: 'multipart/form-data' 
] 

Essayez de changer l'ordre de la liste des valeurs pour la propriété JSON ['text/json','application/json']

+0

Il n 't WOKR que nous avons: /** * Dirige le JSON Writer pour la fluxSortie du HttpServletResponse et définit le type de contenu à l'application/JSON * * réponse @param une HttpServletResponse * @throws ConverterException */ public void render (réponse HttpServletResponse) lancers francs ConverterException { response.setContentTyp e (GrailsWebUtil.getContentType ("application/json", encodage)); try { render (response.getWriter()); Catch (IOException e) { throw new ConverterException (e); } } dans JSON.java – dementiev