Cosiderて以下JSON構造:解析JSONアイソーン
{"k1":
{"k2":
[{"a": 3, "b": 4, "c": 2},
{"a": 1, "b": 2, "c": 9}]},
"irrelevant": "x"}
とHaskellのデータ型の2つのInt一方、[My]
:上記JSONマイのリストに解析されるべきである
data My = My Int Int
それぞれはJSON配列の "a"と "b"キーから取得する必要があります:
[My 3 4, My 1 2]
確かに私はalreですそれの最も単純な部分で厄介な問題に直面している。
は、ここで私はアイソーンを使用して開始方法は次のとおりです。REPLで
import Data.Aeson
import qualified Data.ByteString.Lazy.Char8 as L8
sample :: L8.ByteString
sample = "{\"k1\":{\"k2\":[{\"a\": 3, \"b\": 4, \"c\": 2}, {\"a\": 1, \"b\": 2, \"c\": 9}]}, \"irrelevant\": \"x\"} "
:予想通り
decode sample :: Maybe Object
Just (Object (fromList [("irreleva...
これは、JSONが解析された作品。ただし、次のステップ、キーで「K1」のオブジェクトを取得し、動作しません:私はここにParser a
タイプを受信してい
:t (fromJust $ (decode sample :: Maybe Object)) .: "k1"
...
:: FromJSON a => aeson-0.11.2.1:Data.Aeson.Types.Internal.Parser a
、私はこの時点で別のObject
またはMaybe Object
を取得期待/必要があると思います。
私は正しい経路にいますか?