2016-04-10 7 views
0

Ich habe grails 3.1 Anwendung.Grails 3 - Marshaller mit XML

Unten ist der Code zum Anpassen der Elemente, die JSON Marshaller verwendet, die perfekt funktioniert.

JSON.createNamedConfig("memeListView", { 
      JSON.registerObjectMarshaller(Meme) { Meme memeIns -> 
       return [ 
         caption: memeIns.caption, 
         likeCount: memeIns.likeCount, 
       ] 
      } 
     }) 

Aber, ich habe den obigen Code für XML Einweiser versucht, aber es zeigt gesamte Objektattribute, statt erforderlich. Unten ist der Code für das XML-Marshalling.

XML.createNamedConfig("memeListView", { 
       XML.registerObjectMarshaller(Meme) { Meme memeIns -> 
        return [ 
          caption: memeIns.caption, 
          likeCount: memeIns.likeCount, 
        ] 
       } 
      }) 

In Aktion Teil

JSON.use('memeListView'){ 
     render memesList as JSON 
} 

Bitte empfehlen Sie mir, wie für XML-Antwort Rangier zu tun.

Antwort

1

Ich würde mir vorstellen, dass Sie etwas XML-ish zurückgeben müssen. Ich denke, dass der XML-Marshaller in einem 2. arg geht.

Vielleicht (versucht, dies aus dem Gedächtnis):

XML.createNamedConfig("memeListView", { 
    it.registerObjectMarshaller(Meme) { Meme memeIns, xml -> 
     xml.build { 
      caption(memeIns.caption) 
      likeCount(memeIns.likeCount) 
     } 
    } 
}) 

oder

XML.createNamedConfig("memeListView", { 
    it.registerObjectMarshaller(Meme) { Meme memeIns, xml -> 
     xml.attribute 'caption', memeIns.caption 
     xml.attribute 'likeCount', memIns.likeCount 
    } 
}) 

je nachdem, wie Sie die XML wollen aussehen?

+0

Noch zeigen es gesamte attributes –

+0

Können Sie den Code zeigen, die Sie verwenden? – billjamesdev

+0

XML.use ("memeListView") { render memeList als XML } –