aboutsummaryrefslogtreecommitdiff
path: root/core/encoding/json
diff options
context:
space:
mode:
authorVladPavliuk <pavliuk.vlad@gmail.com>2024-07-13 14:13:59 +0300
committerVladPavliuk <pavliuk.vlad@gmail.com>2024-07-13 14:13:59 +0300
commit64ae99f016998fe78a5a0304767463c46050567a (patch)
treeac575ee4c2545a9c96b616737a313e9c421c8921 /core/encoding/json
parentd845a07519ef940597989cdf4e4f3aa9e01cab05 (diff)
Add support of `ignore` tag for `json.marshal`
Diffstat (limited to 'core/encoding/json')
-rw-r--r--core/encoding/json/marshal.odin4
1 files changed, 3 insertions, 1 deletions
diff --git a/core/encoding/json/marshal.odin b/core/encoding/json/marshal.odin
index 0464c24d1..99ae81485 100644
--- a/core/encoding/json/marshal.odin
+++ b/core/encoding/json/marshal.odin
@@ -406,7 +406,7 @@ marshal_to_writer :: proc(w: io.Writer, v: any, opt: ^Marshal_Options) -> (err:
ti := runtime.type_info_base(type_info_of(v.id))
info := ti.variant.(runtime.Type_Info_Struct)
first_iteration := true
- for name, i in info.names {
+ fields_loop: for name, i in info.names {
omitempty := false
json_name, extra := json_name_from_tag_value(reflect.struct_tag_get(reflect.Struct_Tag(info.tags[i]), "json"))
@@ -414,6 +414,8 @@ marshal_to_writer :: proc(w: io.Writer, v: any, opt: ^Marshal_Options) -> (err:
switch flag {
case "omitempty":
omitempty = true
+ case "ignore":
+ continue fields_loop
}
}