diff --git a/json.zig b/json.zig index 95a13b1a33caa46b523e9c27a34df1dd27df9a90..d29b13e13009501f1c1f455b55168bc1ada78d17 100644 --- a/json.zig +++ b/json.zig @@ -174,11 +174,11 @@ fn parseNumber(alloc: std.mem.Allocator, p: *Parser) anyerror!?ValueIndex { try characters.append(c); if (try p.eatByte('0')) |_| { - return try p.addNumber(alloc, "-0"); + if (p.slice()[0] != '.') return try p.addNumber(alloc, "-0"); } } if (try p.eatByte('0')) |_| { - return try p.addNumber(alloc, "0"); + if (p.slice()[0] != '.') return try p.addNumber(alloc, "0"); } while (try p.eatRange('0', '9')) |d| { try characters.append(d);