Browse Source

Merge pull request #4634 from dozn/patch-1

Use Struct Tags For Embedded (with `using`) Structs When Unmarshalling JSON
gingerBill 8 tháng trước cách đây
mục cha
commit
c7739de891
1 tập tin đã thay đổi với 2 bổ sung2 xóa
  1. 2 2
      core/encoding/json/unmarshal.odin

+ 2 - 2
core/encoding/json/unmarshal.odin

@@ -439,7 +439,7 @@ unmarshal_object :: proc(p: ^Parser, v: any, end_token: Token_Kind) -> (err: Unm
 			use_field_idx := -1
 			
 			for field, field_idx in fields {
-				tag_value := string(reflect.struct_tag_get(field.tag, "json"))
+				tag_value := reflect.struct_tag_get(field.tag, "json")
 				json_name, _ := json_name_from_tag_value(tag_value)
 				if key == json_name {
 					use_field_idx = field_idx
@@ -470,7 +470,7 @@ unmarshal_object :: proc(p: ^Parser, v: any, end_token: Token_Kind) -> (err: Unm
 						}
 					}
 
-					if field.name == key {
+					if field.name == key || (field.tag != "" && reflect.struct_tag_get(field.tag, "json") == key) {
 						offset = field.offset
 						type = field.type
 						found = true