Categories
Libraries
  • Github CLI
  • SSH
  • HTTPS
Clone Repo

zjson

A very tiny json library, it allows you to get a json value from a path. Inspired by jsonparser, a Go library.

This library is useful when you dont want to parse whole JSON file, or when the structure is to complex to parse to structs. It allocates no memory.

This library is still WIP, the API might change. There can be some bugs as it’s not fully tested.

API usage:

Here there is a basic example.

const input =
    \\ {
    \\   "student": [
    \\     {
    \\       "id": "01",
    \\       "name": "Tom",
    \\       "lastname": "Price"
    \\     },
    \\     {
    \\       "id": "02",
    \\       "name": "Nick",
    \\       "lastname": "Thameson"
    \\     }
    \\   ]
    \\ }
;

const lastname = try get(input, .{ "student", 1, "lastname" });
// Thameson


// Iterates an array
const students = try get(input, .{"student"});

var iter = try zjson.ArrayIterator(students);
while(try iter.next()) |s| {
    const name = try get(value.bytes, .{"name"}); 
    std.debug.print("student name: {s}\n", .{name.bytes});
}
// "student name: Tom"
// "student name: Nick"

For more usage examples, you can check ytmusic-zig.

About
Minimal json library with zero allocations
Owner
xyaman (User)
Last Commit
2021-12-28
Latest Release
Latest Release Date
Created
2021-12-16