JR_STR_KV
- Macro
- August 22, 2025
Table of Contents
JR_STR_KV
JR_STR_KV
Description
Read a string key-value pair if key matches.
Parameters
Name | Direction | Description |
---|---|---|
si | in,out | JSON stream iterator to read from. |
k | in | Expected key name (C-string). |
str | out | Destination Str to store the value. |
Usage example (from documentation)
JR_STR_KV(si, "username", user.name);
Success
str
contains the value if key matched
Failure
No-op if key does not match
Usage example (Cross-references)
- In
MisraEnum.c:62
:
i64 last_value = 0;
JR_OBJ(json, {
JR_STR_KV(json, "name", enum_name);
JR_BOOL_KV(json, "to_from_str", to_from_str);
- In
MisraEnum.c:66
:
JR_OBJ_KV(json, "invalid_enum", {
JR_STR_KV(json, "name", invalid_enum.name);
JR_INT_KV(json, "value", invalid_enum.value);
JR_INT_KV(json, "str", invalid_enum.value);
- In
MisraEnum.c:79
:
JR_OBJ(json, {
JR_STR_KV(json, "name", e.name);
JR_INT_KV(json, "value", e.value);
JR_STR_KV(json, "str", e.str);
- In
MisraEnum.c:81
:
JR_STR_KV(json, "name", e.name);
JR_INT_KV(json, "value", e.value);
JR_STR_KV(json, "str", e.str);
});
- In
MisraDoc.c:45
:
JR_OBJ(json, { \
JR_OBJ_KV(json, "project", { \
JR_STR_KV(json, "build_dir", p.build_dir); \
JR_ARR_KV(json, "test_directories", { \
Str s = StrInit(); \
- In
Read.Simple.c:69
:
JR_OBJ(si, {
JR_STR_KV(si, "name", name);
JR_STR_KV(si, "city", city);
});
- In
Read.Simple.c:70
:
JR_OBJ(si, {
JR_STR_KV(si, "name", name);
JR_STR_KV(si, "city", city);
});
JR_OBJ(si, {
JR_INT_KV(si, "id", person.id);
JR_STR_KV(si, "name", person.name);
JR_INT_KV(si, "age", person.age);
JR_BOOL_KV(si, "is_active", person.is_active);
JR_BOOL_KV(si, "debug_mode", config.debug_mode);
JR_INT_KV(si, "timeout", config.timeout);
JR_STR_KV(si, "log_level", config.log_level);
});
JR_OBJ(si, {
JR_OBJ_KV(si, "user", {
JR_STR_KV(si, "name", data.user.name);
JR_STR_KV(si, "email", data.user.email);
});
JR_OBJ_KV(si, "user", {
JR_STR_KV(si, "name", data.user.name);
JR_STR_KV(si, "email", data.user.email);
});
JR_BOOL_KV(si, "active", data.active);
JR_OBJ(si, {
JR_INT_KV(si, "id", product.id);
JR_STR_KV(si, "name", product.name);
JR_FLT_KV(si, "price", product.price);
JR_ARR_KV(si, "tags", {
JR_OBJ(si, {
JR_STR_KV(si, "name", obj.name);
JR_STR_KV(si, "description", obj.description);
});
JR_OBJ(si, {
JR_STR_KV(si, "name", obj.name);
JR_STR_KV(si, "description", obj.description);
});
JR_OBJ(si, {
JR_STR_KV(si, "path", obj.path);
JR_STR_KV(si, "message", obj.message);
JR_STR_KV(si, "data", obj.data);
JR_OBJ(si, {
JR_STR_KV(si, "path", obj.path);
JR_STR_KV(si, "message", obj.message);
JR_STR_KV(si, "data", obj.data);
});
JR_STR_KV(si, "path", obj.path);
JR_STR_KV(si, "message", obj.message);
JR_STR_KV(si, "data", obj.data);
});
JR_OBJ(si, {
JR_STR_KV(si, "escaped", obj.escaped);
JR_STR_KV(si, "backslash", obj.backslash);
JR_STR_KV(si, "newline", obj.newline);
JR_OBJ(si, {
JR_STR_KV(si, "escaped", obj.escaped);
JR_STR_KV(si, "backslash", obj.backslash);
JR_STR_KV(si, "newline", obj.newline);
JR_STR_KV(si, "tab", obj.tab);
JR_STR_KV(si, "escaped", obj.escaped);
JR_STR_KV(si, "backslash", obj.backslash);
JR_STR_KV(si, "newline", obj.newline);
JR_STR_KV(si, "tab", obj.tab);
});
JR_STR_KV(si, "backslash", obj.backslash);
JR_STR_KV(si, "newline", obj.newline);
JR_STR_KV(si, "tab", obj.tab);
});
JR_OBJ(si, {
JR_STR_KV(si, "name", obj.name);
JR_INT_KV(si, "value", obj.value);
JR_BOOL_KV(si, "flag", obj.flag);
- In
RoundTrip.c:122
:
JR_FLT_KV(si, "temperature", parsed.temperature);
JR_BOOL_KV(si, "enabled", parsed.enabled);
JR_STR_KV(si, "message", parsed.message);
});
- In
RoundTrip.c:316
:
StrIter si = StrIterFromStr(json);
JR_OBJ(si, {
JR_STR_KV(si, "empty", parsed.empty);
JR_STR_KV(si, "simple", parsed.simple);
JR_STR_KV(si, "with_spaces", parsed.with_spaces);
- In
RoundTrip.c:317
:
JR_OBJ(si, {
JR_STR_KV(si, "empty", parsed.empty);
JR_STR_KV(si, "simple", parsed.simple);
JR_STR_KV(si, "with_spaces", parsed.with_spaces);
JR_STR_KV(si, "with_special", parsed.with_special);
- In
RoundTrip.c:318
:
JR_STR_KV(si, "empty", parsed.empty);
JR_STR_KV(si, "simple", parsed.simple);
JR_STR_KV(si, "with_spaces", parsed.with_spaces);
JR_STR_KV(si, "with_special", parsed.with_special);
});
- In
RoundTrip.c:319
:
JR_STR_KV(si, "simple", parsed.simple);
JR_STR_KV(si, "with_spaces", parsed.with_spaces);
JR_STR_KV(si, "with_special", parsed.with_special);
});
- In
RoundTrip.c:476
:
JR_OBJ_KV(si, "user", {
JR_INT_KV(si, "id", parsed_person.id);
JR_STR_KV(si, "name", parsed_person.name);
JR_INT_KV(si, "age", parsed_person.age);
JR_BOOL_KV(si, "is_active", parsed_person.is_active);
- In
RoundTrip.c:572
:
JR_OBJ_KV(si, "user", {
JR_INT_KV(si, "id", parsed.user.id);
JR_STR_KV(si, "name", parsed.user.name);
JR_INT_KV(si, "age", parsed.user.age);
JR_BOOL_KV(si, "is_active", parsed.user.is_active);
- In
RoundTrip.c:580
:
JR_BOOL_KV(si, "debug_mode", parsed.config.debug_mode);
JR_INT_KV(si, "timeout", parsed.config.timeout);
JR_STR_KV(si, "log_level", parsed.config.log_level);
JR_ARR_KV(si, "features", {
Str feature = StrInit();
- In
RoundTrip.c:675
:
StrIter si = StrIterFromStr(json);
JR_OBJ(si, {
JR_STR_KV(si, "empty_string", parsed_str);
JR_ARR_KV(si, "empty_numbers", {
i32 num = 0;
JR_OBJ(si, {
JR_INT_KV(si, "id", data.id);
JR_STR_KV(si, "name", data.name);
JR_BOOL_KV(si, "active", data.active);
JR_FLT_KV(si, "score", data.score);
JR_INT_KV(si, "id", data.user.id);
JR_OBJ_KV(si, "profile", {
JR_STR_KV(si, "name", data.user.profile.name);
JR_INT_KV(si, "age", data.user.profile.age);
});
});
});
JR_STR_KV(si, "status", data.status);
});
JR_OBJ_KV(si, "departments", {
JR_OBJ_KV(si, "engineering", {
JR_STR_KV(si, "head", data.company.departments.engineering.head);
JR_INT_KV(si, "count", data.company.departments.engineering.count);
JR_FLT_KV(si, "budget", data.company.departments.engineering.budget);
});
});
JR_STR_KV(si, "name", data.company.name);
});
});
JR_OBJ(si, {
JR_FLT_KV(si, "distance", sym.distance);
JR_STR_KV(si, "name", sym.function_name);
});
JR_OBJ(si, {
JR_BOOL_KV(si, "status", response.status);
JR_STR_KV(si, "message", response.message);
if (response.status) {
JR_INT_KV(si, "nearest_neighbor_analysis_id", sym.analysis_id);
JR_INT_KV(si, "nearest_neighbor_binary_id", sym.binary_id);
JR_STR_KV(si, "nearest_neighbor_analysis_name", sym.analysis_name);
JR_STR_KV(si, "nearest_neighbor_function_name", sym.function_name);
JR_STR_KV(si, "nearest_neighbor_sha_256_hash", sym.sha256);
JR_INT_KV(si, "nearest_neighbor_binary_id", sym.binary_id);
JR_STR_KV(si, "nearest_neighbor_analysis_name", sym.analysis_name);
JR_STR_KV(si, "nearest_neighbor_function_name", sym.function_name);
JR_STR_KV(si, "nearest_neighbor_sha_256_hash", sym.sha256);
JR_BOOL_KV(si, "nearest_neighbor_debug", sym.debug);
JR_STR_KV(si, "nearest_neighbor_analysis_name", sym.analysis_name);
JR_STR_KV(si, "nearest_neighbor_function_name", sym.function_name);
JR_STR_KV(si, "nearest_neighbor_sha_256_hash", sym.sha256);
JR_BOOL_KV(si, "nearest_neighbor_debug", sym.debug);
JR_STR_KV(si, "nearest_neighbor_function_name_mangled", sym.function_mangled_name);
JR_STR_KV(si, "nearest_neighbor_sha_256_hash", sym.sha256);
JR_BOOL_KV(si, "nearest_neighbor_debug", sym.debug);
JR_STR_KV(si, "nearest_neighbor_function_name_mangled", sym.function_mangled_name);
});
JR_OBJ(si, {
JR_INT_KV(si, "id", info.id);
JR_STR_KV(si, "name", info.name);
JR_INT_KV(si, "size", info.size);
JR_INT_KV(si, "vaddr", info.vaddr);
JR_OBJ(si, {
JR_INT_KV(si, "id", info.id);
JR_STR_KV(si, "name", info.name);
});
JR_OBJ(si, {
JR_INT_KV(si, "binary_id", result.binary_id);
JR_STR_KV(si, "binary_name", result.binary_name);
JR_INT_KV(si, "analysis_id", result.analysis_id);
JR_STR_KV(si, "sha256", result.sha256);
JR_STR_KV(si, "binary_name", result.binary_name);
JR_INT_KV(si, "analysis_id", result.analysis_id);
JR_STR_KV(si, "sha256", result.sha256);
JR_STR_KV(si, "created_at", result.created_at);
JR_INT_KV(si, "model_id", result.model_id);
JR_INT_KV(si, "analysis_id", result.analysis_id);
JR_STR_KV(si, "sha256", result.sha256);
JR_STR_KV(si, "created_at", result.created_at);
JR_INT_KV(si, "model_id", result.model_id);
JR_STR_KV(si, "model_name", result.model_name);
JR_STR_KV(si, "created_at", result.created_at);
JR_INT_KV(si, "model_id", result.model_id);
JR_STR_KV(si, "model_name", result.model_name);
JR_STR_KV(si, "owned_by", result.owned_by);
});
JR_INT_KV(si, "model_id", result.model_id);
JR_STR_KV(si, "model_name", result.model_name);
JR_STR_KV(si, "owned_by", result.owned_by);
});
JR_OBJ(si, {
JR_BOOL_KV(si, "status", response.status);
JR_STR_KV(si, "message", response.message);
printf("[DEBUG] Parsed status: %s, message: '", response.status ? "true" : "false");
JR_INT_KV(si, "nearest_neighbor_analysis_id", sym.analysis_id);
JR_INT_KV(si, "nearest_neighbor_binary_id", sym.binary_id);
JR_STR_KV(si, "nearest_neighbor_analysis_name", sym.analysis_name);
JR_STR_KV(si, "nearest_neighbor_function_name", sym.function_name);
JR_STR_KV(si, "nearest_neighbor_sha_256_hash", sym.sha256);
JR_INT_KV(si, "nearest_neighbor_binary_id", sym.binary_id);
JR_STR_KV(si, "nearest_neighbor_analysis_name", sym.analysis_name);
JR_STR_KV(si, "nearest_neighbor_function_name", sym.function_name);
JR_STR_KV(si, "nearest_neighbor_sha_256_hash", sym.sha256);
JR_BOOL_KV(si, "nearest_neighbor_debug", sym.debug);
JR_STR_KV(si, "nearest_neighbor_analysis_name", sym.analysis_name);
JR_STR_KV(si, "nearest_neighbor_function_name", sym.function_name);
JR_STR_KV(si, "nearest_neighbor_sha_256_hash", sym.sha256);
JR_BOOL_KV(si, "nearest_neighbor_debug", sym.debug);
JR_STR_KV(si, "nearest_neighbor_function_name_mangled", sym.function_mangled_name);
JR_STR_KV(si, "nearest_neighbor_sha_256_hash", sym.sha256);
JR_BOOL_KV(si, "nearest_neighbor_debug", sym.debug);
JR_STR_KV(si, "nearest_neighbor_function_name_mangled", sym.function_mangled_name);
});
JR_OBJ(si, {
JR_BOOL_KV(si, "status", response.status);
JR_STR_KV(si, "message", response.message);
printf("[DEBUG] Parsed status: %s, message: '", response.status ? "true" : "false");
JR_INT_KV(si, "nearest_neighbor_analysis_id", sym.analysis_id);
JR_INT_KV(si, "nearest_neighbor_binary_id", sym.binary_id);
JR_STR_KV(si, "nearest_neighbor_analysis_name", sym.analysis_name);
JR_STR_KV(si, "nearest_neighbor_function_name", sym.function_name);
JR_STR_KV(si, "nearest_neighbor_sha_256_hash", sym.sha256);
JR_INT_KV(si, "nearest_neighbor_binary_id", sym.binary_id);
JR_STR_KV(si, "nearest_neighbor_analysis_name", sym.analysis_name);
JR_STR_KV(si, "nearest_neighbor_function_name", sym.function_name);
JR_STR_KV(si, "nearest_neighbor_sha_256_hash", sym.sha256);
JR_BOOL_KV(si, "nearest_neighbor_debug", sym.debug);
JR_STR_KV(si, "nearest_neighbor_analysis_name", sym.analysis_name);
JR_STR_KV(si, "nearest_neighbor_function_name", sym.function_name);
JR_STR_KV(si, "nearest_neighbor_sha_256_hash", sym.sha256);
JR_BOOL_KV(si, "nearest_neighbor_debug", sym.debug);
JR_STR_KV(si, "nearest_neighbor_function_name_mangled", sym.function_mangled_name);
JR_STR_KV(si, "nearest_neighbor_sha_256_hash", sym.sha256);
JR_BOOL_KV(si, "nearest_neighbor_debug", sym.debug);
JR_STR_KV(si, "nearest_neighbor_function_name_mangled", sym.function_mangled_name);
});