Преобразование записей в проплисты (и обратно)

У меня есть веб-приложение на Erlang, основанное на Mochiweb и Mnesia, которое потребляет и выдает JSON. Имеет смысл хранить записи в Mnesia; однако Mochiweb / Mochijson требуют данные в формате проплист. Итак, я получаю большой объем шаблонного кода:

-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)}.  

Прекрасно с одной маленькой записью, боль с большим количеством больших записей. Может ли кто-нибудь предложить способ обойти весь этот шаблонный код? Думаю, мне нужен способ динамически проверять поля записи; и поскольку записи являются конструкцией времени компиляции, я предполагаю [предполагая, что ' возможно] это означает внедрение кода с помощью макроса ..

Спасибо!

9
задан Manoj Govindan 21 September 2010 в 17:19
поделиться