Elm access如何在列表中多个对象

Elm access如何在列表中多个对象,elm,Elm,我在Elm lang中有以下代码: import Json.Decode exposing (..) import Html exposing (..) json = -- List that contains and will have many users """ [{\"ssn\":\"111.111.111-11\",\"name\":\"People Silva\",\"email\":\"people@eat.com\"}, {\"ssn\":\"000.000.000-0

我在Elm lang中有以下代码:

import Json.Decode exposing (..)
import Html exposing (..)


json =  -- List that contains and will have many users
 """
 [{\"ssn\":\"111.111.111-11\",\"name\":\"People Silva\",\"email\":\"people@eat.com\"}, {\"ssn\":\"000.000.000-00\",\"name\":\"Pet Silva\",\"email\":\"pet@eat.com\"}]
 """

type alias User =
  { name : String
  , email: String
  , ssn: String
  }


userDecoder : Json.Decode.Decoder User
userDecoder =
  Json.Decode.map3 User
    (field "name" string)
    (field "email" string)
    (field "ssn" string)


userListDecoder : Json.Decode.Decoder (List User)
userListDecoder =
  Json.Decode.list userDecoder


main =
  let
    decoded = (decodeString userListDecoder json)
  in
    case decoded of
      Ok u ->
        span [] [text (toString u)]

      Err e ->
        span [] [text (toString e)]
这段代码工作得很好,并输出以下内容(如何预期):

我开始怀疑,如何获得列表中所有用户的列表?(作为奖励,获得列表中的用户数)


用户位于
列表用户
值中,因此您可以使用访问它们

如果要从用户列表中获取用户名列表,可以调用
list.map.name users

如果要将用户名写入其自己的div中,可以这样编写:

showUser : User -> Html msg
showUser user =
    div [] [ text user.name ]
main =
  let
    decoded = (decodeString userListDecoder json)
  in
    case decoded of
      Ok users ->
        div [] (List.map showUser users)

      Err e ->
        span [] [text (toString e)]
main
调用它,如下所示:

showUser : User -> Html msg
showUser user =
    div [] [ text user.name ]
main =
  let
    decoded = (decodeString userListDecoder json)
  in
    case decoded of
      Ok users ->
        div [] (List.map showUser users)

      Err e ->
        span [] [text (toString e)]

获取列表的长度只需使用函数:
list.length users

您的意思是您只需要一个包含所有用户名的列表吗?感谢您提供的速度、简单性和效率。