2013-11-22 101 views
0

我有一個域類列表不會被渲染成JSON

class UserProfile { 

    List<String> interests = []; 
    ObjectId id; 
    String username; 
    String password; 
    String email; 

    static constraints = { 

    } 
} 

這是正確MongoDB中的格姆堅持

def user = new UserProfile(username:"name",password:"pass",email:"[email protected]",interests: ['women','dogfight']); 
user.save() 

可能在蒙戈控制檯進行驗證:

{「_id」:ObjectId(「528fd78003646357efb421c0」),「email」:「[email protected]」,「interest」:[「women」,「dogfight」],「password」:「pass」,「username」 「名稱」,「版本」:0}

,所以我通過 UserProfile.find() as JSON在控制器獲取該對象,並得到

{ 「類」: 「domain.users.UserProfile」, 「ID」:{ 「類」: 「org.bson.types.ObjectId」 , 「公司」: - 273407552, 「機器」:56910679, 「新」:假的, 「時間」:1385158528000, 「timeSecond」:1385158528}, 「電子郵件」: 「ASD \ u0040asd.com」, 「密碼」:」傳」,‘用戶名’:‘名字’}

正如你所看到的不幸並沒有呈現

我希望得到任何幫助的興趣列表。感謝名單。

P.S. Grails的v2.3.3

回答

1

域類指定的關聯應該有所幫助。

static hasMany = [interests: String] 
+0

它適用於我。非常感謝你 – macromaniac

2

收集發現裏面域類是非分之想GORM。在使用SQL數據庫時,您將難以堅持這樣一個實體。所以我相信,Grails中的轉換器忽略了這些屬性。

比你需要編寫自己的編組器,進行轉換。大約有這裏的Grails marshallers很多答案在SO,或在這裏是一個很好的博客文章:

http://compiledammit.com/2012/08/16/custom-json-marshalling-in-grails-done-right/