如何从struct proplist JSON对象中提取正确的信息
在使用mochijson2解码JSON数据之后,我得到了这个结构化的proplist如何从struct proplist JSON对象中提取正确的信息,json,parsing,erlang,Json,Parsing,Erlang,在使用mochijson2解码JSON数据之后,我得到了这个结构化的proplist {struct, [{<<"query">>, {struct, [{<<"count">>,4}, {<<"created">>,<<"2013-11-08T18:33:07Z">>}, {<<"lang">>,<<"en-US">>},
{struct,
[{<<"query">>,
{struct,
[{<<"count">>,4},
{<<"created">>,<<"2013-11-08T18:33:07Z">>},
{<<"lang">>,<<"en-US">>},
{<<"results">>,
{struct,
[{<<"quote">>,
[{struct,
[{<<"symbol">>,<<"YHOO">>},
{<<"Ask">>,<<"32.99">>},
{<<"AverageDailyVolu"...>>,<<"18383000">>},
{<<"Bid">>,<<"32.98">>},
{<<"AskRealt"...>>,<<"32.9"...>>},
{<<"BidR"...>>,<<...>>},
{<<...>>,...},
{...}|...]},
{struct,
[{,
{struct,
[{,4},
{,},
{,},
{,
{struct,
[{,
[{struct,
[{,},
{,},
{,},
{,},
{,},
{,},
{,...},
{...}|...]},
正如您在上面看到的,我想进入[{struct,[{,}]]等,并开始从那里提取数据。这就是我所取得的进展,但我似乎无法将其提取出来。感谢您的帮助
Struct = mochijson2:decode(Body), Struct,
{struct, JsonData} = Struct,
{struct, Symbol} = proplists:get_value(<<"query">>, JsonData),
{struct, New} = proplists:get_value(<<"results">>, Symbol),
{struct, New1} = proplists:get_value(<<"quote">>, New),
Id = proplists:get_value(<<"symbol">>, New1),
Id.
Struct=mochijson2:decode(Body),Struct,
{struct,JsonData}=struct,
{struct,Symbol}=proplist:get_value(,JsonData),
{struct,New}=proplist:get_value(,Symbol),
{struct,New1}=proplist:get_value(,New),
Id=proplist:get_值(,New1),
身份证件
表达式
{struct, New1} = proplists:get_value(<<"quote">>, New),
{struct,New1}=proplist:get_value(,New),
包含不正确的匹配项。因此:
[{struct, New1}] = proplists:get_value(<<"quote">>, New),
[{struct,New1}]=proplist:get_value(,New),
为什么选择mochijson2?试试看,它非常简单,不创建atom结构,因此模式匹配更容易(更少的字符),因为一旦创建了proplist。哦,我就这样做了。但是我现在在那行上遇到了一个错误,说“**异常错误:右侧值不匹配”。这项工作为我完成并重新返回:Struct=mochijson2:decode(Body),{Struct,JsonData}=Struct,{Struct,Symbol}=proplist:get_value(,JsonData),{Struct,New}=proplist:get_value(,Symbol),[{Struct,New1}]=proplist:get_value(,New),Id=proplist:get_value(,New1),Id.
你的代码是一样的吗?哦,New
包含一个结构列表。你可以使用它:[{struct,New1}}|]=proplist:get_value(,New)
来获取它们中的第一个,或者类似于New1=proplist:get_value(,New),[proplist:get_value(,S)|{struct,S}哦,我明白了,谢谢你,我明白你的意思!但是如果我用列表理解,我怎么能从中得到一些选择性的数据,例如一个列表中的所有数据,而不是其余的?例如:[{proplist:get_value(,S),proplist:get_value(,S),proplist:get_value(,S)}{struct,S}