diff options
| author | gingerBill <bill@gingerbill.org> | 2022-09-14 18:21:12 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2022-09-14 18:21:12 +0100 |
| commit | 28ad4f8623b31e21a8a63ef69aa85a7f070bc20b (patch) | |
| tree | 12913eb9175da236302df0b03ceb2d630d85ccd6 /core/encoding | |
| parent | a3c04db82831d8d56e4aa4be7c7de6f53286682c (diff) | |
Use `json` field tag for `json.marshal`
Diffstat (limited to 'core/encoding')
| -rw-r--r-- | core/encoding/json/marshal.odin | 6 |
1 files changed, 5 insertions, 1 deletions
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]) |