Это не , что трудно написать ToJSON/FromJSON экземпляры для сгенерированных типов, но все же, пока вы генерируете код, можете ли вы его вставить? Или есть простой способ сделать это как пользователь Yesod? (Я не копал слишком глубоко в том, как работает TH ...)Почему нет постоянных типов экземпляров ToJSON/FromJSON в Yesod?
Update: ОК, мне нравится это предложение, но, скажем, мой настойчивый тип пользователя. Если я использую
$(deriveJSON id ''User)
он дает
Exception when trying to run compile-time code:
Data.Aeson.TH.withType: Unsupported type: TySynD Model.User [] (AppT (ConT Model.UserGeneric) (ConT Database.Persist.GenericSql.Raw.SqlPersist))
Code: deriveJSON (id) 'User
, по-видимому, потому, что это псевдоним. Но
$(deriveJSON id ''UserGeneric)
дает
Kind mis-match
The first argument of `UserGeneric' should have kind `(* -> *)
-> *
-> *',
but `backend[i5XB]' has kind `*'
я, наверное, еще есть неправильный тип, но я не могу найти достаточно о том, что Стойкие генерирует, чтобы получить право колдовство.
Вы уже поняли это? Здесь вы столкнулись с той же проблемой. –
Я уже давно не работаю с Yesod, но я уверен, что у меня это работало, используя добавленный «json», упомянутый в ссылке Майкла Снояна: https: // github.com/yesodweb/yesod/wiki/Persistent-entity-синтаксис # json-экземпляры – svachalek
спасибо, он работает :) –