From a88439202868a90745fa56f489ac698bbda73c45 Mon Sep 17 00:00:00 2001 From: Mitja Felicijan Date: Sun, 15 Sep 2024 11:09:26 +0200 Subject: Added Zig and structs with JSON parsing --- zig-structs/read.zig | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 zig-structs/read.zig (limited to 'zig-structs/read.zig') diff --git a/zig-structs/read.zig b/zig-structs/read.zig new file mode 100644 index 0000000..95d6390 --- /dev/null +++ b/zig-structs/read.zig @@ -0,0 +1,23 @@ +const std = @import("std"); +const player = @import("player.zig"); + +pub fn main() !void { + var gpa = std.heap.GeneralPurposeAllocator(.{}){}; + const allocator = gpa.allocator(); + defer { + _ = gpa.deinit(); + } + + const file = try std.fs.cwd().openFile("player.json", .{}); + defer file.close(); + + const stat = try file.stat(); + const buffer = try file.readToEndAlloc(allocator, stat.size); + defer allocator.free(buffer); + + const parsed = try std.json.parseFromSlice(player.Player, allocator, buffer, .{}); + defer parsed.deinit(); + + const p: player.Player = parsed.value; + std.debug.print("Reading player with data: {{ Name: {s}, Age: {d} }}\n", .{ p.name, p.age }); +} -- cgit v1.2.3