From 28ad4f8623b31e21a8a63ef69aa85a7f070bc20b Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 14 Sep 2022 18:21:12 +0100 Subject: [PATCH] Use `json` field tag for `json.marshal` --- core/encoding/json/marshal.odin | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/encoding/json/marshal.odin b/core/encoding/json/marshal.odin index 8f7749aba..6834acd8a 100644 --- a/core/encoding/json/marshal.odin +++ b/core/encoding/json/marshal.odin @@ -302,7 +302,11 @@ marshal_to_writer :: proc(w: io.Writer, v: any, opt: ^Marshal_Options) -> (err: for name, i in info.names { opt_write_iteration(w, opt, i) or_return - opt_write_key(w, opt, name) or_return + if json_name := string(reflect.struct_tag_get(info.tags[i], "json")); json_name != "" { + opt_write_key(w, opt, json_name) or_return + } else { + opt_write_key(w, opt, name) or_return + } id := info.types[i].id data := rawptr(uintptr(v.data) + info.offsets[i])