Je souhaite extraire une valeur d'un objet json. Et j'ai ceci:Comment créer "ActionCtxT" dans Spock?
post "/test" $ do
a <- jsonBody'
let b = show (a :: Object) -- works well
myVal <- (a :: Object) .: "some_key" -- error
text "test123"
Et l'erreur:
• Couldn't match type ‘aeson-1.0.2.1:Data.Aeson.Types.Internal.Parser’
with ‘ActionCtxT() (WebStateM() MySession MyAppState)’
Expected type: ActionCtxT() (WebStateM() MySession MyAppState) a0
Actual type: aeson-1.0.2.1:Data.Aeson.Types.Internal.Parser a0
• In a stmt of a 'do' block:
myVal <- (a :: Aeson.Object) Aeson..: "some_key"
Je sais ce que cela signifie: la ligne avec myVal doit retourner quelque chose du type ActionCtxT ainsi que toutes les autres lignes. Ou une valeur pure. Ainsi, comment le réparer?
relire ma question – Jodimoro
J'ai compris votre question, je pensais que vous étiez dans le mauvais sens. Si vous voulez toujours persister, vous pouvez accéder à la valeur 'HashMap' en utilisant' let myVal = (a :: Object)! "some_key" 'par exemple. –
id $ iot ou non? - Ce n'est pas ce que je veux - je veux toujours persister. – Jodimoro