как переопределить вязовые JSON декодеры? - PullRequest
0 голосов
/ 02 октября 2018

В нашем проекте мы используем стандартные кодеры json для кодирования наших моделей данных elm в json.В результате я хочу получить строку, которая будет выглядеть как список объектов [{..}, {..}], но я получаю довольно неожиданный результат: объект, ключи которого являются индексом элементов, а значения - это объекты, которые яхочу кодировать, это выглядит так:

{
    "0": {"a":"b"}, 
    "1": {"c":"d"}
}

Как я могу переопределить мои кодировщики, чтобы получить желаемый список объектов?Наши кодеры JSON:

memberListEncoder : List Member -> Encode.Value
memberListEncoder memberList =
    Encode.list (List.map encodeMember memberList)

и

encodeMember : Member -> Encode.Value
encodeMember member =
    Encode.object
        [ ( "firstName", Encode.string member.firstName.value )
        , ( "lastName", Encode.string member.lastName.value )
        ]

1 Ответ

0 голосов
/ 02 октября 2018

Предполагается, что вяз 0,19

Хотя я еще не видел ваше определение Member, я думаю, что проблема в том, что вам не нужно использовать List.map в вашем memberListEncoder,Следующего должно быть достаточно:

memberListEncoder : List Member -> Encode.Value
memberListEncoder memberList =
    Encode.list encodeMember memberList
...