下面是一个简短的查询在Erlang中,我使用
Ccode = jiffy:decode(<<"{\"foo\": \"bar\"}">>).
它返回
{[{<<"foo">>,<<"bar">>}]}
现在目标是获取'foo'的值,它应该返回'bar'任何帮助都是感激不尽的。
vecaoik11#
我发现jsx很容易用途:
Eshell V6.2 (abort with ^G) 1> Data = jsx:decode(<<"{\"foo\": \"bar\"}">>). [{<<"foo">>,<<"bar">>}] 2> proplists:get_value(<<"foo">>, Data). <<"bar">>
您甚至可以将其解析为Maps。
3> Map = jsx:decode(<<"{\"foo\": \"bar\"}">>, [return_maps]). #{<<"foo">> => <<"bar">>} 4> maps:get(<<"foo">>, Map). <<"bar">>
k3fezbri2#
可以使用模式匹配提取JSON对象的属性列表,然后在结果列表中按键查找值:
{Attrs} = jiffy:decode(<<"{\"foo\": \"bar\"}">>), FooValue = proplists:get_value(<<"foo">>, Attrs).
wxclj1h53#
您可以尝试ej模块:ej模块使得使用Erlang术语来表示jiffy、mochijson 2或ejson返回格式的JSON变得更加容易。可以使用ej:get/2遍历对象并返回特定值,使用ej:set/3更新对象中的值,或者使用ej:delete/2从对象中删除值。
3条答案
按热度按时间vecaoik11#
我发现jsx很容易用途:
您甚至可以将其解析为Maps。
k3fezbri2#
可以使用模式匹配提取JSON对象的属性列表,然后在结果列表中按键查找值:
wxclj1h53#
您可以尝试ej模块:
ej模块使得使用Erlang术语来表示jiffy、mochijson 2或ejson返回格式的JSON变得更加容易。可以使用ej:get/2遍历对象并返回特定值,使用ej:set/3更新对象中的值,或者使用ej:delete/2从对象中删除值。