我尝试将map转换为struct,如下所示:
我有一张地图:
iex(6)> user
%{"basic_auth" => "Basic Ym1hOmphYnJhMTc=", "firstname" => "foo",
"lastname" => "boo"}该值应应用于struct:
iex(7)> a = struct(UserInfo, user)
%SapOdataService.Auth.UserInfo{basic_auth: nil, firstname: nil, lastname: nil}正如你所看到的,struct的值是空的,为什么呢?
发布于 2019-01-23 23:18:33
%{"basic_auth" => "Basic Ym1hOmphYnJhMTc=", "firstname" => "foo", "lastname" => "boo"}
|> Poison.encode
|> (fn {:ok, json} -> json end).()
|> Poison.decode(as: %SapOdataService.Auth.UserInfo{})或者
~S({"basic_auth":"Basic Ym1hOmphYnJhMTc=","firstname":"foo","lastname":"boo"})
|> Poison.decode(as: %SapOdataService.Auth.UserInfo{})请注意,这不会在UserInfo上使用@enforce_keys进行编译。
https://stackoverflow.com/questions/41980358
复制相似问题