3
を解析します。課題は、型が必要なデータを含むキーの名前でエンコードされていることです。理論的には私は.:?
呼び出しの束を使用して、指定された鍵がJust
を返しますが、私はより良い方法が必要だと思うかどうかを確認できます。私はasum
を見ましたが、これはあまり役に立たなかったでしょう。アイソーンは、私は複数のコンストラクタでタイプを生成するためにJSONを解析しようとしている複数のコンストラクタに
import Data.Aeson
import Data.Time.Clock
data Request = Req1 { id :: String, properties :: Value }
| Req2 { id :: String, properties :: Value }
| Req3 { id :: String, time :: UTCTime }
instance FromJSON Request where
parseJSON = withObject "message" $ \o ->
-- ???
例要求:
{"req1": {"id": "345", "p1": "v1", "p2": "v2"}}
{"req2": {"id": "654", "p3", "v3"}}
{"req3": {"id": "876", "time": 1234567890}}
は、各個別のリクエストオブジェクトの異なるタイプを使用することはできませんか? – jkeuhlen
もhttp://stackoverflow.com/questions/32421836/aeson-parsing-dynamic-keys-as-type-field?rq=1見ます –