Hello, All
I do not understand how to work Json.Decode.Pipeline for nested Json.
Json Structure
{
"count": "null",
"data": [
{
"configType": "2",
"date": "2012-02-07 11:51:29",
"desc": "Access Limiter",
"id": "26",
"term": "ACCESS_LIMITER"
},
{
"configType": "2",
"date": "2012-02-07 11:51:29",
"desc": "Sort top boxes",
"id": "2",
"term": "BOXES.SORT"
}
],
"messages": "",
"success": "true"
}
decodeRisResponse : Decode.Decoder RisConfigResponse
decodeRisResponse =
decode RisConfigResponse
|> required "count" Decode.string
|> required "data" Decode.list
|> required "message" Decode.string
|> required "success" Decode.bool
decodeConfigs : Decode.Decoder (List Config)
decodeConfigs =
Decode.list decodeConfig
decodeConfig : Decode.Decoder Config
decodeConfig =
decode Config
|> required "id" Decode.string
|> required "term" Decode.string
|> required "desc" Decode.string
|> required "date" Decode.string
|> required "configType" Decode.string
type alias RisConfigResponse =
{
count : String
, data : (List Config)
, message : String
, success : Bool
}
type alias ConfigId = String
type alias Config =
{
id: ConfigId
, term : String
, desc : String
, date : String
, configType : String
}
But I have Error
2:16:39 PM client.1 | -- TYPE MISMATCH
> -------------------------------------------- ./src/Commands.elm
> 2:16:39 PM client.1 | The 2nd argument to function `required` is causing
> a mismatch.
> 2:16:39 PM client.1 | 25| required "data" Decode.list
> 2:16:39 PM client.1 | ^^^^^^^^^^^
> 2:16:39 PM client.1 | Function `required` is expecting the 2nd argument
> to be:
> 2:16:39 PM client.1 | Decode.Decoder (List a)
> 2:16:39 PM client.1 | But it is:
> 2:16:39 PM client.1 | Decode.Decoder a -> Decode.Decoder (List a)
> 2:16:39 P
How do it parse "data" : (List Config) ?
P.S. Sorry for my english ^)
--
You received this message because you are subscribed to the Google Groups "Elm
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.