Sample code for 30+ languages & platforms
Zig

Iterate over JSON Array containing JSON Objects

See more JSON Examples

Demonstrates how to load a JSON array and iterate over the JSON objects.

Chilkat Zig Downloads

Zig
const std = @import("std");
const chilkat = @import("chilkat");

pub fn main(init: std.process.Init) !void {
    const alloc = init.arena.allocator();

    // Loads the following JSON array and iterates over the objects:
    //
    // [
    // {"tagId":95,"tagDescription":"hola 1","isPublic":true},
    // {"tagId":98,"tagDescription":"hola 1","isPublic":true},
    // {"tagId":101,"tagDescription":"hola 1","isPublic":true},
    // {"tagId":104,"tagDescription":"hola 1","isPublic":true},
    // {"tagId":107,"tagDescription":"hola 1","isPublic":true},
    // {"tagId":110,"tagDescription":"hola 1","isPublic":true},
    // {"tagId":113,"tagDescription":"hola 1","isPublic":true},
    // {"tagId":114,"tagDescription":"hola 2","isPublic":true},
    // {"tagId":111,"tagDescription":"hola 2","isPublic":true},
    // {"tagId":108,"tagDescription":"hola 2","isPublic":true},
    // {"tagId":105,"tagDescription":"hola 2","isPublic":true},
    // {"tagId":102,"tagDescription":"hola 2","isPublic":true},
    // {"tagId":99,"tagDescription":"hola 2","isPublic":true},
    // {"tagId":96,"tagDescription":"hola 2","isPublic":true},
    // {"tagId":97,"tagDescription":"hola 3","isPublic":true},
    // {"tagId":100,"tagDescription":"hola 3","isPublic":true},
    // {"tagId":103,"tagDescription":"hola 3","isPublic":true},
    // {"tagId":106,"tagDescription":"hola 3","isPublic":true},
    // {"tagId":109,"tagDescription":"hola 3","isPublic":true},
    // {"tagId":112,"tagDescription":"hola 3","isPublic":true},
    // {"tagId":115,"tagDescription":"hola 3","isPublic":true},
    // {"tagId":93,"tagDescription":"new tag","isPublic":true},
    // {"tagId":94,"tagDescription":"new tag","isPublic":true},
    // {"tagId":89,"tagDescription":"tag 1","isPublic":true},
    // {"tagId":90,"tagDescription":"tag 2","isPublic":true},
    // {"tagId":91,"tagDescription":"tag private 1","isPublic":false},
    // {"tagId":92,"tagDescription":"tag private 2","isPublic":false}
    // ]

    // Load a file containing the above JSON..
    const sb_json_array = try chilkat.StringBuilder.init();
    defer sb_json_array.deinit();
    try sb_json_array.loadFile("qa_data/json/arraySample.json", "utf-8");

    const arr = try chilkat.JsonArray.init();
    defer arr.deinit();
    try arr.loadSb(sb_json_array);

    var tag_id: i32 = 0;
    var tag_description: [:0]const u8 = "";
    var is_public: bool = false;

    var i: i32 = 0;
    const count = arr.getSize();
    while (i < count) {
        const obj = try arr.objectAt(i);
        defer obj.deinit();
        tag_id = obj.intOf("tagId");
        tag_description = try obj.stringOf(alloc, "tagDescription");
        is_public = obj.boolOf("isPublic");

        std.debug.print("tagId: {d}\n", .{tag_id});
        std.debug.print("tagDescription: {s}\n", .{tag_description});
        std.debug.print("isPublic: {}\n", .{is_public});
        std.debug.print("--\n", .{});

        i = i + 1;
    }
}