Skip to content

A JSON5 parser/stringifier for Zig resembling the std.json API

License

Notifications You must be signed in to change notification settings

Himujjal/zig-json5

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A JSON5 parser/stringifier for Zig that resembles the std.json API from the standard library

Installation

Simply get the src/main.zig file using curl or wget:

CURL:

curl https://raw.githubusercontent.com/Himujjal/zig-json5/master/src/main.zig --output json5.zig 

WGET:

wget https://raw.githubusercontent.com/Himujjal/zig-json5/master/src/main.zig -O json5.zig

Docs

The API is similar to the std.json library. Just replace json with json5 wherever possible

For a short tutorial see: Zig JSON in 5 minutes

A simple example:

fn parseStringifyAndTest(input: []const u8, expected: []const u8) !void {
    const a = std.testing.allocator;

    var string = std.ArrayList(u8).init(a);
    defer string.deinit();

    var parser = json5.Parser.init(a, false);
    defer parser.deinit();

    var tree = try parser.parse(input);
    defer tree.deinit();

    try tree.root.json5Stringify(.{}, string.writer());

    std.testing.expect(mem.eql(u8, string.items, expected)) catch |err| {
        std.debug.print("\n == Expected: {s}\n Got: {s} ==\n", .{ expected, string.items });
        return err;
    };
}

About

A JSON5 parser/stringifier for Zig resembling the std.json API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages