Я новичок в elm, и мне очень тяжело разбирать json с html на elm и использовать его.
Вот что я пытаюсь сделать:
В моем htmldoc:
var app = Elm.Main.init({
node: document.getElementById("app"),
flags: questions
});
, затем в elm:
main =
Browser.element { init = init, update = update, subscriptions = subscriptions, view = view }
-- MODEL
type alias Model =
{
questionsToAnswer: List QuestionToAnswer
, currentQuestion: Int
, initializeGame: Bool
}
type alias QuestionToAnswer =
{
question: String
, a: String
, b: String
, c: String
, d: String
, answer: String
}
questionDecoder : Decoder QuestionToAnswer
questionDecoder =
map6 QuestionToAnswer
(field "question" string)
(field "A" string)
(field "B" string)
(field "C" string)
(field "D" string)
(field "answer" string)
init : Json.Decode.Value -> (Model, Cmd Msg)
init questions =
(Model (getQuestions questions) 0 True, Cmd.none)
getQuestions : Json.Decode.Value -> List QuestionToAnswer
getQuestions questions =
case(decodeValue questionDecoder questions) of
Ok question ->
[question]
_ ->
[ QuestionToAnswer "me" "me" "me" "me" "me" "me"]
Мой json выглядит так:
{
"question": "In mobster lingo, if you 'sing like a canary' what are you doing?",
"A": "impersonating Sinatra",
"B": "talking to the cops",
"C": "killing an enemy",
"D": "betting on horses",
"answer": "B"
}
Я вывожу весь ответ как debug.toString ввид только для того, чтобы увидеть, что происходит, потому что я также не знаю, как записать ошибку, которая была произведена раньше.Компилятор говорит, что мой вызов вопросов getQuestions создает ошибку Json.Decode.er, в которую мне трудно поверить, потому что я думаю, что все выглядит нормально для меня.
Ошибка:
"{\ "question \": \ "В бандитском жаргоне, если вы 'поете как канарейка', что вы делаете? \", \ "A \": \ "выдает себя за Синатру \", \ "B \": \ "говоритеполицейским \ ", \" C \ ": \" убийство врага \ ", \" D \ ": \" ставки на лошадей \ ", \" ответ \ ": \" B \ "}" Ожидается ОБЪЕКТс полем с именем question