fix UnmarshalJSON