0
我是新来的榆树,并试图解码一些JSON。但我不断收到这个错误,关于它没有得到的期望。期待一些自定义错误
下面是一个代码示例。我不确定它期待什么。
module JsonTest exposing (..)
import Json.Decode
import Json.Decode.Pipeline
--Model
type alias Model =
{ msg : String
, tlps : List Tlp
}
decodeTlps : Json.Decode.Decoder Model
decodeTlps =
Json.Decode.Pipeline.decode Model
|> Json.Decode.Pipeline.hardcoded "Got Data"
|> Json.Decode.Pipeline.required "tlps" (Json.Decode.list decodeTlp)
type alias Tlp =
{ title : String
, trendingTopic : Bool
, synonym : Bool
, summaryDate : String
, lastFeatureAdded : String
, modifiedDate : String
}
decodeTlp : Json.Decode.Decoder Tlp
decodeTlp =
Json.Decode.Pipeline.decode Tlp
|> Json.Decode.Pipeline.required "title" (Json.Decode.string)
|> Json.Decode.Pipeline.optional "trendingTopic" (Json.Decode.bool) False
|> Json.Decode.Pipeline.optional "synonym" (Json.Decode.bool) False
|> Json.Decode.Pipeline.optional "summaryDate" (Json.Decode.string) "1/1/2016"
|> Json.Decode.Pipeline.optional "lastFeatureAdded" (Json.Decode.string) "1/1/2016"
|> Json.Decode.Pipeline.optional "modifiedDate" (Json.Decode.string) "1/1/2016"
json =
"""
{
"tlps": [
{
"title": "Topic 1",
"trendingTopic": false,
"synonym": false,
"summaryDate": null,
"lastFeatureAdded": null,
"modifiedDate": null
},
{
"title": "Topic 2",
"trendingTopic": false,
"synonym": false,
"summaryDate": null,
"lastFeatureAdded": null,
"modifiedDate": null
},
{
"title": "Topic 3",
"trendingTopic": false,
"synonym": false,
"summaryDate": null,
"lastFeatureAdded": null,
"modifiedDate": null
},
{
"title": "Topic 4",
"trendingTopic": false,
"synonym": false,
"summaryDate": null,
"lastFeatureAdded": null,
"modifiedDate": null
}
]
}
"""
如果我跑在REPL下面我得到
> import JsonTest
> import Json.Decode
> Json.Decode.decodeString JsonTest.decodeTlps JsonTest.json
Err "Expecting something custom at _.tlps[3] but instead got: {\"title\":\"Topic 4\",\"trendingTopic\":false,\"synonym\":false,\"summaryDate\":null,\"lastFeatureAdded\":null,\"modifiedDate\":null}"
: Result.Result String TLPDashboard.Model
>
非常感谢你的工作。我看到你回答了很多榆树问题,谢谢你帮助我们所有人!我只用了一个多星期,并且我仍然习惯了这些功能的组成。 –