From 31f2f960b8407eb23e44ad2b3abf237f43107c59 Mon Sep 17 00:00:00 2001 From: zhengzepeng Date: Fri, 15 Jul 2022 17:34:05 +0800 Subject: [PATCH] if map is pojo, write class name first --- map.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/map.go b/map.go index 4f144b83..13367562 100644 --- a/map.go +++ b/map.go @@ -122,9 +122,16 @@ func (e *Encoder) encMap(m interface{}) error { return nil } + // if pojo, write class name first + if p, ok := m.(POJO); ok { + e.buffer = encByte(e.buffer, BC_MAP) + e.buffer = encString(e.buffer, p.JavaClassName()) + } else { + e.buffer = encByte(e.buffer, BC_MAP_UNTYPED) + } + keys = value.MapKeys() - e.buffer = encByte(e.buffer, BC_MAP_UNTYPED) if len(keys) > 0 { typ = value.Type().Key() for i := 0; i < len(keys); i++ {