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
6
A
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
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]) Xml version =" 1.0 "encoding =" utf-8 "?' 'Gibi bir şey olmalıdır. Bunu yapmazsanız, ilk satırınız olması gerektiği gibi bir xml beyanı olmayacaktır. Hata? Muhtemelen. – geowa4
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. ..) –
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