anchor.diff:    protected
       procedure AddOneObject(AObject: TObject); virtual;
   
  +
       property Errors: TList<string> read FErrors;
     public
       constructor Create(AFormat: TSvSerializeFormat = sstJson); virtual;
  
positive.code:         ASkip := True;
        end;
      end;
    end;  
  end;
  
  function TSvAbstractSerializer<T>.DoSetFromString(AJsonString: T; AType: TRttiType;
  
negative.code: function TSvAbstractSerializer<T>.DoSetFromArray(AJsonArray: T; AType: TRttiType;
    const AObj: TValue; AProp: TRttiProperty; var ASkip: Boolean): TValue;
  var
    arrVal: array of TValue;
    i: Integer;
    LObject: TObject;
    LValue: TValue;
    bCreated: Boolean;
  begin
    bCreated := False;
    LValue := TValue.Empty;
    if Assigned(AType) then
    begin
      case AType.TypeKind of
        tkArray:
        begin
          SetLength(arrVal, GetArraySize(AJsonArray));
          for i := 0 to Length(arrVal)-1 do
          begin
            arrVal[i] := SetValue(GetArrayElement(AJsonArray, i), AObj, AProp, TRttiArrayType(AType).ElementType, ASkip);
          end;
          Result := TValue.FromArray(AType.Handle, arrVal);
        end;
        tkDynArray:
        begin
          SetLength(arrVal, GetArraySize(AJsonArray));
          for i := 0 to Length(arrVal)-1 do
          begin
            arrVal[i] := SetValue(GetArrayElement(AJsonArray, i), AObj, AProp, TRttiDynamicArrayType(AType).ElementType, ASkip);
          end;
          Result := TValue.FromArray(AType.Handle, arrVal);
        end;
        tkClass, tkInterface:
        begin
          if not Assigned(AType) then
            Exit;
  
          if not Assigned(AProp) then
          begin
            //if AProp not assigned then we must create it
            if AType.IsInstance then
            begin
              LObject := TSvRttiInfo.CreateType(AType.Handle);
              if Assigned(LObject) then
              begin
                LValue := LObject;
                bCreated := True;
              end;
            end;
          end
          else
          begin
            Result := TSvRttiInfo.GetValue(AProp, AObj);
            if (Result.IsObject) and (Result.AsObject is TDataSet) then
            begin
              DeserializeDataset(AJsonArray, Result);
              Exit;
            end;
          end;
  
          if TryDeserializeContainer(AJsonArray, LValue, AType, bCreated, AProp, AObj, ASkip) then
          begin
            if bCreated then
            begin
              Result := LValue;
              ASkip := False;
              Exit;
            end;
          end;
          ASkip := True;
        end
        else
        begin
          ASkip := True;
          PostError('Cannot assign array data to non array type');
        end;
      end;
    end;
  