lib/acp/src/json.zig
daab053ee43316e1809a84551d573ddd1e5bf3d2
1 const std = @import("std");
2
3 pub fn getObject(value: std.json.Value) ?std.json.ObjectMap {
4 return switch (value) {
5 .object => |object| object,
6 else => null,
7 };
8 }
9
10 pub fn getString(value: std.json.Value) ?[]const u8 {
11 return switch (value) {
12 .string => |string| string,
13 else => null,
14 };
15 }
16
17 pub fn getInteger(value: std.json.Value) ?i64 {
18 return switch (value) {
19 .integer => |integer| integer,
20 else => null,
21 };
22 }
23
24 pub fn getBool(value: std.json.Value) ?bool {
25 return switch (value) {
26 .bool => |item| item,
27 else => null,
28 };
29 }
30
31 pub fn objectString(object: std.json.ObjectMap, key: []const u8) ?[]const u8 {
32 const value = object.get(key) orelse return null;
33 return getString(value);
34 }
35
36 pub fn objectInteger(object: std.json.ObjectMap, key: []const u8) ?i64 {
37 const value = object.get(key) orelse return null;
38 return getInteger(value);
39 }
40
41 pub fn objectBool(object: std.json.ObjectMap, key: []const u8) ?bool {
42 const value = object.get(key) orelse return null;
43 return getBool(value);
44 }
45
46 pub fn objectObject(object: std.json.ObjectMap, key: []const u8) ?std.json.ObjectMap {
47 const value = object.get(key) orelse return null;
48 return getObject(value);
49 }