authorgravatar for marc@tiehu.isMarc Tiehuis <marc@tiehu.is> 2019-02-14 00:12:00+13:00
committergravatar for marc@tiehu.isMarc Tiehuis <marc@tiehu.is> 2019-02-14 00:12:00+13:00
logde7c55145aeb6687040254dedaef66eedf5328dd
treea4adc3a21596ca600437d32247aad2d67dc03575
parentc34ce6878e5834a123be862d45bd26fd9a843eef

Add parseFloat support to json.zig


1 files changed, 6 insertions(+), 2 deletions(-)

std/json.zig+6-2
...@@ -1345,7 +1345,7 @@ pub const Parser = struct {...@@ -1345,7 +1345,7 @@ pub const Parser = struct {
1345 return if (token.number_is_integer)1345 return if (token.number_is_integer)
1346 Value{ .Integer = try std.fmt.parseInt(i64, token.slice(input, i), 10) }1346 Value{ .Integer = try std.fmt.parseInt(i64, token.slice(input, i), 10) }
1347 else1347 else
1348 @panic("TODO: fmt.parseFloat not yet implemented");1348 Value{ .Float = std.fmt.parseFloat(f64, token.slice(input, i)) };
1349 }1349 }
1350};1350};
13511351
...@@ -1366,7 +1366,8 @@ test "json.parser.dynamic" {...@@ -1366,7 +1366,8 @@ test "json.parser.dynamic" {
1366 \\ },1366 \\ },
1367 \\ "Animated" : false,1367 \\ "Animated" : false,
1368 \\ "IDs": [116, 943, 234, 38793],1368 \\ "IDs": [116, 943, 234, 38793],
1369 \\ "ArrayOfObject": [{"n": "m"}]1369 \\ "ArrayOfObject": [{"n": "m"}],
1370 \\ "double": 1.3412
1370 \\ }1371 \\ }
1371 \\}1372 \\}
1372 ;1373 ;
...@@ -1395,4 +1396,7 @@ test "json.parser.dynamic" {...@@ -1395,4 +1396,7 @@ test "json.parser.dynamic" {
13951396
1396 const obj0 = array_of_object.Array.at(0).Object.get("n").?.value;1397 const obj0 = array_of_object.Array.at(0).Object.get("n").?.value;
1397 testing.expect(mem.eql(u8, obj0.String, "m"));1398 testing.expect(mem.eql(u8, obj0.String, "m"));
1399
1400 const double = image.Object.get("double").?.value;
1401 testing.expect(double.Float == 1.3412);
1398}1402}