erlang/otp

json integer decoder callback is never called for input "0"

Closed this issue · 2 comments

Describe the bug

When decoding <<"0">> or <<"-0">> with the new json module, the integer/1 decoder callback is never called.

To Reproduce

json:decode(<<"0">>, ok, #{integer => fun(_) -> works end}).
%=> {0,ok,<<>>}
json:decode(<<"1">>, ok, #{integer => fun(_) -> works end}).
%=> {works,ok,<<>>}

Expected behavior

json:decode(<<"0">>, ok, #{integer => fun(_) -> works end}).
%=> {works,ok,<<>>}

Affected versions

  • 27.0

@michalmuskala

Good catch! Fix in #8581

dgud commented

Fix is merged.