JW_ARR_KV
- Macro
- August 22, 2025
Table of Contents
JW_ARR_KV
JW_ARR_KV
Description
Write a key and an array value into a JSON object. Intended for use within a JW_OBJ
. Adds commas automatically.
Parameters
Name | Direction | Description |
---|---|---|
j | in,out | The target string to append to. |
k | in | Key name for the array. |
arr | in | A vector to iterate over. |
item | out | Iterator variable for the current item. |
writer | in | Code block that appends JSON for each item . |
Usage example (from documentation)
JW_ARR_KV(json, "tags", tag_vec, tag, {
JW_STR(json, tag);
});
Success
Appends a key-value array pair to json
Failure
Does not return on failure
Usage example (Cross-references)
VecPushBack(&languages, lang3);
JW_OBJ(json, { JW_ARR_KV(json, "languages", languages, lang, { JW_STR(json, lang); }); });
const char* expected = "{\"languages\":[\"C\",\"Python\",\"Rust\"]}";
JW_STR_KV(json, "name", product.name);
JW_FLT_KV(json, "price", product.price);
JW_ARR_KV(json, "tags", product.tags, tag, { JW_STR(json, tag); });
});
JW_OBJ(json, {
JW_ARR_KV(json, "numbers", empty_numbers, num, { JW_INT(json, num); });
JW_ARR_KV(json, "strings", empty_strings, str, { JW_STR(json, str); });
});
JW_OBJ(json, {
JW_ARR_KV(json, "numbers", empty_numbers, num, { JW_INT(json, num); });
JW_ARR_KV(json, "strings", empty_strings, str, { JW_STR(json, str); });
});
}
);
JW_ARR_KV(json, "list", empty_list, item, { JW_INT(json, item); });
JW_OBJ_KV(json, "deep", {
JW_OBJ_KV(
);
JW_OBJ_KV(json, "filled_obj", { JW_INT_KV(json, "x", x_value); });
JW_ARR_KV(json, "empty_arr", empty_arr, item, { JW_INT(json, item); });
JW_ARR_KV(json, "filled_arr", filled_arr, item, { JW_INT(json, item); });
});
JW_OBJ_KV(json, "filled_obj", { JW_INT_KV(json, "x", x_value); });
JW_ARR_KV(json, "empty_arr", empty_arr, item, { JW_INT(json, item); });
JW_ARR_KV(json, "filled_arr", filled_arr, item, { JW_INT(json, item); });
});
JW_OBJ(json, {
JW_ARR_KV(json, "functions", functions, func, {
JW_OBJ(json, {
JW_INT_KV(json, "id", func.id);
JW_INT_KV(json, "analysis_id", result.analysis_id);
JW_STR_KV(json, "sha256", result.sha256);
JW_ARR_KV(json, "tags", result.tags, tag, { JW_STR(json, tag); });
JW_STR_KV(json, "created_at", result.created_at);
JW_INT_KV(json, "model_id", result.model_id);
JW_OBJ(json, {
JW_ARR_KV(json, "numbers", numbers, num, { JW_INT(json, num); });
JW_ARR_KV(json, "strings", strings, str, { JW_STR(json, str); });
JW_ARR_KV(json, "booleans", booleans, b, { JW_BOOL(json, b); });
JW_OBJ(json, {
JW_ARR_KV(json, "numbers", numbers, num, { JW_INT(json, num); });
JW_ARR_KV(json, "strings", strings, str, { JW_STR(json, str); });
JW_ARR_KV(json, "booleans", booleans, b, { JW_BOOL(json, b); });
});
JW_ARR_KV(json, "numbers", numbers, num, { JW_INT(json, num); });
JW_ARR_KV(json, "strings", strings, str, { JW_STR(json, str); });
JW_ARR_KV(json, "booleans", booleans, b, { JW_BOOL(json, b); });
});
- In
RoundTrip.c:375
:
Str json = StrInit();
JW_OBJ(json, {
JW_ARR_KV(json, "numbers", original_numbers, num, { JW_INT(json, num); });
JW_ARR_KV(json, "strings", original_strings, str, { JW_STR(json, str); });
});
- In
RoundTrip.c:376
:
JW_OBJ(json, {
JW_ARR_KV(json, "numbers", original_numbers, num, { JW_INT(json, num); });
JW_ARR_KV(json, "strings", original_strings, str, { JW_STR(json, str); });
});
- In
RoundTrip.c:550
:
JW_INT_KV(json, "timeout", original.config.timeout);
JW_STR_KV(json, "log_level", original.config.log_level);
JW_ARR_KV(json, "features", original.config.features, feature, { JW_STR(json, feature); });
});
JW_ARR_KV(json, "numbers", original.numbers, num, { JW_INT(json, num); });
- In
RoundTrip.c:552
:
JW_ARR_KV(json, "features", original.config.features, feature, { JW_STR(json, feature); });
});
JW_ARR_KV(json, "numbers", original.numbers, num, { JW_INT(json, num); });
JW_ARR_KV(json, "flags", original.flags, flag, { JW_BOOL(json, flag); });
});
- In
RoundTrip.c:553
:
});
JW_ARR_KV(json, "numbers", original.numbers, num, { JW_INT(json, num); });
JW_ARR_KV(json, "flags", original.flags, flag, { JW_BOOL(json, flag); });
});
- In
RoundTrip.c:656
:
JW_OBJ(json, {
JW_STR_KV(json, "empty_string", empty_str);
JW_ARR_KV(json, "empty_numbers", empty_numbers, num, { JW_INT(json, num); });
JW_ARR_KV(json, "empty_strings", empty_strings, str, { JW_STR(json, str); });
JW_OBJ_KV(
- In
RoundTrip.c:657
:
JW_STR_KV(json, "empty_string", empty_str);
JW_ARR_KV(json, "empty_numbers", empty_numbers, num, { JW_INT(json, num); });
JW_ARR_KV(json, "empty_strings", empty_strings, str, { JW_STR(json, str); });
JW_OBJ_KV(
json,