我对 erlang 有点陌生
尝试使用 https://github.com/Prots/olifer 进行 JSON 验证
但出现错误:
1> sql_app:update(<<"0.2851">>,<<"frfrfrfr">>)。
** 异常错误:没有 case 子句匹配 [{<<"0.2851">>, <<“格式错误”>>}] 在函数 sql_app:update/2 中(c:/sql/_build/default/lib/sql/src/sql_app.erl,第 31 行)
功能是:
update(Id, Info) ->
case olifer:validate(Id, [{<<"string">>, <<"required">>}]) of
{ok, _} ->
emysql:prepare(info, <<"UPDATE vobla SET info = ? WHERE id = ?">>),
Result1 = emysql:execute(erlang, info, [Info, Id]),
io:format("~n~p~n", [Result1]);
{errors, _} -> io:format("~n~p~n", [error])
end.
你能帮我解决一下吗?
提前致谢。
最佳答案
说明你写的case子句与传入的结果不匹配[{<<"0.2851">>, <<"FORMAT_ERROR">>}]
。您的 case 子句与格式 {ok, _}
的元组匹配或{errors, _}
。不是一个 list 。
update(Id, Info) ->
Res = olifer:validate(Id, [{<<"string">>, <<"required">>}]),
io:format("~p", [Res]),
case Res of
[Tup] -> do_something; % could be an error
{ok, _} -> % validation success
emysql:prepare(info, <<"UPDATE vobla SET info = ? WHERE id = ?">>),
Result1 = emysql:execute(erlang, info, [Info, Id]),
io:format("~n~p~n", [Result1]);
{errors, _err} -> io:format("~n~p~n", [_err])
end.
根据日志,您遇到格式错误。
关于mysql - Erlang json验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40447518/