diff --git a/reflect_extension.go b/reflect_extension.go index e27e8d1..80320cd 100644 --- a/reflect_extension.go +++ b/reflect_extension.go @@ -341,7 +341,7 @@ func describeStruct(ctx *ctx, typ reflect2.Type) *StructDescriptor { if ctx.onlyTaggedField && !hastag && !field.Anonymous() { continue } - if tag == "-" { + if tag == "-" || field.Name() == "_" { continue } tagParts := strings.Split(tag, ",") diff --git a/type_tests/struct_embedded_test.go b/type_tests/struct_embedded_test.go index 3fb3f11..dcab2a4 100644 --- a/type_tests/struct_embedded_test.go +++ b/type_tests/struct_embedded_test.go @@ -60,6 +60,7 @@ func init() { (*SameLevel2NoTags)(nil), (*SameLevel2Tagged)(nil), (*EmbeddedPtr)(nil), + (*UnnamedLiteral)(nil), ) } @@ -231,3 +232,7 @@ type EmbeddedPtrOption struct { type EmbeddedPtr struct { EmbeddedPtrOption `json:","` } + +type UnnamedLiteral struct { + _ struct{} +}