diff --git a/implement/sjson_write.go b/implement/sjson_write.go index fd1db2a..af5ad90 100644 --- a/implement/sjson_write.go +++ b/implement/sjson_write.go @@ -32,6 +32,8 @@ func (s *SjsonWrite) Delete(dataPath string) error { var ( err error ) + s.l.Lock() + defer s.l.Unlock() if s.res, err = sjson.Delete(s.res, dataPath); nil != err { return err } @@ -90,6 +92,8 @@ func (s *SjsonWrite) Set(dataPath string, data any) error { } func (s *SjsonWrite) Result() string { + s.l.RLock() + defer s.l.RUnlock() return s.res } @@ -105,7 +109,7 @@ func (s *SjsonWrite) Map() (map[string]any, error) { } func (s *SjsonWrite) MapWithReceiver(receiver any) error { - return serialize.JSON.UnmarshalWithNumberForString(s.res, receiver) + return serialize.JSON.UnmarshalWithNumberForString(s.Result(), receiver) } func (s *SjsonWrite) Array() ([]any, error) { @@ -120,5 +124,5 @@ func (s *SjsonWrite) Array() ([]any, error) { } func (s *SjsonWrite) ArrayWithReceiver(receiver any) error { - return serialize.JSON.UnmarshalWithNumberForString(s.res, receiver) + return serialize.JSON.UnmarshalWithNumberForString(s.Result(), receiver) }