Erlang构造Json数据 return json数据
关键词:erlang json map return data 构造 处理 返回值
使用示例
Map = [{"data", StorageNames}],
{ok, Json} = json_helper:return_json_from_map(Map),
{ok, Json}.
底层方法实现
return_json_from_map(Map) ->
Map1 = lists:map(fun(Item) ->
case Item of
{K,V} -> {K,parseObj(V)};
_ -> Item
end
end, Map),
return_json_from_list(Map1).
return_json_from_list(List) ->
Obj = json:obj_from_list(List),
Json = lists:flatten(jsonex:encode(Obj)),
{ok, Json}.
parseObj(Obj) when erlang:is_atom(Obj) ->
case lists:member(Obj, [true,false,undefined,null]) of
true -> Obj;
false -> convert:to_string(Obj)
end;
parseObj(Obj) when erlang:is_atom(Obj) ->
case lists:member(Obj, [true,false,undefined,null]) of
true -> Obj;
false -> convert:to_string(Obj)
end;
parseObj(Obj) -> Obj.
encode(true) -> "true";