Cosider하여 다음 JSON 구조 :파싱 JSON 아이손
{"k1":
{"k2":
[{"a": 3, "b": 4, "c": 2},
{"a": 1, "b": 2, "c": 9}]},
"irrelevant": "x"}
하스켈 데이터 유형 : 두 지능 반면 [My]
: 위 JSON 내 목록으로 해석되어야
data My = My Int Int
각각은 JSON 배열의 "a"와 "b"키로부터 가져와야합니다 :
[My 3 4, My 1 2]
틀림없이 나는 ady는 그것의 가장 간단한 부분으로 문제를 직면합니다.
는 여기에 내가 아이손을 사용하기 시작하는 방법은 다음 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
을 받고 기대/필요 했어.
올바른 경로에 있습니까?