我有一個基於Mochiweb和Mnesia的Erlang web應用程序,它使用併發出JSON。在Mnesia存儲記錄是有意義的;但是Mochiweb/Mochijson需要proplist格式的數據。所以我最終得到了大量的樣板代碼:將記錄轉換爲proplists(並返回)
-record(foobar, {name, value}).
record_to_proplist(Record)->
[{name, Record#foobar.name},
{value, Record#foobar.value}].
proplist_to_record(Props)->
#foobar{name=proplists:get_value("name", Props),
value=proplists:get_value("value", Props)}.
很好,只有一個小記錄,有很多大記錄的痛苦。任何人都可以提出一個方法來處理所有這些樣板代碼?我想我需要一些動態檢查記錄字段的方法;由於記錄是一個編譯時構造,我猜[假設這是可能的],這意味着通過宏注入代碼..
謝謝!
把DanialLuna的其他答案放在一起:列表:zip(league2:'#info - '(Rec),tl(tuple_to_list(Rec)) )。 – f3r3nc 2013-03-20 14:20:23
鏈接已死,請在將來填寫完整的答案。 – drozzy 2016-11-22 17:18:45