2012-01-03 8 views
6

Play ile ayaklarımı ıslatmak için basit bir uygulama yaparak etrafta dolaşıyorum! 2.0. Kaynaklarımı XML (ATOM feed, gerçekten) ve JSON olarak sunabilmeyi isterim. 1.2.x'de nasıl yapılacağını biliyorum, ancak bu şekilde 2.0 ile çalışmıyor gibi görünüyor. Bunun nasıl yapıldığını bilen var m? Örnekler çok takdir edilecektir.Oyunla XML ve JSON nasıl sunulur? 2.0

cevap

11

JSON ben bu soruya bakmak için sizi öneriyoruz How to render JSON response in Play framework v2.0 (latest build from GIT)

XML aynen bu kodla sonucu döndüren çağırabilirsiniz beri çok daha basittir:

Ok(Xml(xmlString)) 

Ama temizleyici yolu, fot muhtemelen mdo.scala.xml gibi views/xml altında kendi şablon yazmak için bu işlevini kullanarak olabilir

@(mdo:MyDomainObject) 
<?xml version="1.0" encoding="utf-8"?> 
<MyDomainObject> 
    <name>@mdo.name</name> 
    <desc>@mdo.desc</desc> 
    <kws> 
    @mdo.keywords map { k=> 
    <kw>k</kw> 
    } 
    </kws> 
</MyDomainObject> 

Sonra

def c = Action { 
    val o = MyDomainObject("mine", "for example", List("stack", "over", "flow")) 
    Ok(views.xml.mdo(o)) 
} 

Aksi takdirde Kontrolör içinde, belki

+0

Sana onay işareti vereceğiz bir dizme kütüphane yardımıyla toJSON benzer ToXml fonksiyona sahiptir ama burada gereken gerekli bir şeydir Bahsettiğinize ek olarak yapın. Geçerli olmak için, ilk satırınız '@ (posts: Seq [Post]) geowa4

+0

NO Bu satır zorunludur! Sadece bahsetmeyi unuttum. Ekleyeyim. Aslında bu XML belirtiminin bir parçasıdır, bu satır her zaman UTF-8'de kodlanır ve belgede hangi kodlamanın kullanıldığını (ve XML sürümünün kullanıldığını bilmek için) ayrıştırıcılar tarafından kullanılır, ancak aslında çok fazla kullanılmaz. ..) –

+0

Sorun hala çözümünüzde var. Oluşturduğunuz XML'in ilk satırı aslında boş. Bildirimi oynatmak için parametrelerden hemen sonra bildirimde bulunmanız gerekir. Bu benim için bir böcek. – geowa4