0

Poison return invalid when I parse a valid json string that has 0 prefix. For example,

Poison.Parser.parse("{\"mynumber\":09315}") returns {:error, {:invalid, "9", 13}}, but if I remove 0 prefix Poison.Parser.parse("{\"mynumber\":9315}") returns {:ok, %{"mynumber" => 9315}}.

I would like to know why "{\"mynumber\":09315}" is not valid. Is there any workaround?

Khaino
  • 3,774
  • 1
  • 27
  • 36
  • @DavidCullen thanks, it answers half of my question. – Khaino Mar 26 '20 at 06:00
  • for workaround I just replace wiht `String.replace("{\"mynumber\":09315}", ~r/\"mynumber\"\:0*/, "\"mynumber\":")` before parsing it – Khaino Mar 26 '20 at 06:54

1 Answers1

0

Why is JSON invalid if an integer begins with a leading zero? explains the reason why "{\"mynumber\":09315}" is invalid.

for workaround I just replace wiht String.replace("{\"mynumber\":09315}", ~r/\"mynumber\"\:0*/, "\"mynumber\":") before parsing it

Khaino
  • 3,774
  • 1
  • 27
  • 36