Упрощенная работа с JSON'ом
20/10/2010 10:04
Ryan Zezeski предложил достаточно простой способ работы с JSON'ом, используя генератор PEG-парсеров Neotoma.
Пример:
-module(json).
-export([destructure/2]).
destructure(JS, JSON) ->
F = destructure_json:parse(JS),
F(JSON).
%%%
%%%
1> Obj = mochijson2:decode("{ \"post\": { \"title\": \"Destructuring JSON in Erlang Made Easy\" }}").
{struct,[{<<"post">>,
{struct,[{<<"title">>,
<<"Destructuring JSON in Erlang Made Easy">>}]}}]}
2> json:destructure("Obj.post.title", Obj).
<<"Destructuring JSON in Erlang Made Easy">>
3> Obj2 = mochijson2:decode("{ \"person\": { \"name\": \"ryan\", \"friends\": [ \"Brendan\", \"Smokey\", \"Bams\" ] }}").
{struct,[{<<"person">>,
{struct,[{<<"name">>,<<"ryan">>},
{<<"friends">>,[<<"Brendan">>,<<"Smokey">>,<<"Bams">>]}]}}]}
4> json:destructure("Obj.person.friends[1]", Obj2).
<<"Smokey">>
О том, как получить модуль destructure_json, и описание работы — в блоге автора: http://www.progski.net/blog/2010/destructuring_json_in_erlang_made_easy.html
