我使用jsonerl解码我的应用程序中的请求正文。结果元组看起来像这样:
{
{<<"message">>,<<"Hello World">>},
{<<"users">>, [
{
{<<"first_name">>,<<"Jules">>},
{<<"last_name">>,<<"Winfield">>},
{<<"id">>,1}
},
{
{<<"first_name">>,<<"Vincent">>},
{<<"last_name">>,<<"Vega">>},
{<<"id">>,2}
}
]},
{<<"activities">>, [
{
{<<"type">>,<<"fetching bag">>},
{<<"user_id">>,1}
},
{
{<<"type">>,<<"discussing metrical system">>},
{<<"user_id">>,2}
}
]},
}
当然,这些小节的顺序是未知的。
我想将用户列表移交给一个创建记录列表的函数。如何在这些元组中访问此列表。
提前致谢
答案 0 :(得分:2)
试试这个:
{_, ListOfUsers} = lists:keyfind(<<"users">>, 1, tuple_to_list(YourListOfUsers)).
答案 1 :(得分:1)
你的意思是模式匹配吗?
{ _ , { _ , ListOfUsers } } = YourListOfUsers.
但如果你的意思是:
当然,subupels的顺序是未知的。
用户元组有时会首先显示,然后前一个代码段不起作用。您应该在结果元组中强制执行某种结构。