golang encode and decode map