Я пытаюсь вернуть атрибут 'seriesId' из ответа JSON. Этот атрибут сам может или не может существовать в ответе.Erlang - проверка наличия динамической переменной, полученной из пути JSON
<dyn_variable name="myseriesId" jsonpath="catalog[0].dummy[0].seriesId"/>
Итак, здесь я хочу сделать кое-что на основе наличия вышеуказанного атрибута. Ниже приведен код, который я пробовал.
<setdynvars sourcetype="eval"
code="fun({Pid,DynVars})->
case ts_dynvars:lookup(myseriesId,DynVars) of
{ok, SeriesId} ->
io:format(' seriesId : ~B : ~n',[SeriesId]),
BoolSeries = 1;
_ ->
io:format(' setting bool to zero: ~n'),
BoolSeries =0
end,
BoolSeries
end.">
<var name="checkSeries" />
</setdynvars>
Здесь я столкнулся с некоторыми проблемами. Я вижу это в журналах.
ts_search:(4:<0.102.0>) Dyn Var: no Match (varname=myseriesId),
ts_client:(5:<0.102.0>) Stop in state wait_ack, reason= {badarg,
[{io,
format,
[<0.77.0>,
' seriesId : ~B : ~n',
[<<>>]],
[]},
{erl_eval,
.....
JSON ответ не имеет атрибут «seriesId», но выглядит этот код все еще ударять «OK» случай. Я здесь смущен. Этот код работает, если ответ JSON имеет атрибут «seriesId».
Спасибо за помощь!
спасибо !! '2417- fatal: surprise_char Ошибка конфигурации, прерывание! {fatal, {surprise_char, '- {ok, <<>>} -> кажется, вызывает проблемы для меня. Вы можете помочь? –
Правильно, так как код Erlang вставлен в файл XML, вам нужно избежать символов '<' and '>'. Вместо '{ok, <<>>}', напишите '{ok, < < > >}'. – legoscia