【发布时间】:2011-04-15 04:24:08
【问题描述】:
我有一个基于 Mochiweb 和 Mnesia 的 Erlang webapp,它使用和发出 JSON。在 Mnesia 中存储记录是有意义的;但是 Mochiweb/Mochijson 需要 proplist 格式的数据。所以我最终得到了大量的样板代码:
-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)}.
单个小记录很好,很多大记录很痛苦。任何人都可以提出一个解决所有这些样板代码的方法吗?我想我需要一些动态检查记录字段的方法;而且由于记录是一个编译时构造,我猜[假设有可能]这意味着通过宏注入代码..
谢谢!
【问题讨论】:
标签: erlang