summaryrefslogtreecommitdiff
path: root/zig-struct-json/read.zig
diff options
context:
space:
mode:
Diffstat (limited to 'zig-struct-json/read.zig')
-rw-r--r--zig-struct-json/read.zig23
1 files changed, 23 insertions, 0 deletions
diff --git a/zig-struct-json/read.zig b/zig-struct-json/read.zig
new file mode 100644
index 0000000..95d6390
--- /dev/null
+++ b/zig-struct-json/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 });
+}