anchor.diff:    Result := ADefault;
     if Assigned(Self) and TryGetValue<TJSONNumber>(AName, LValue) then
       Result := LValue.AsDouble;
  +end;
  +
  +function TJSONObjectHelper.DeletePair(const AName: string): Boolean;
  +var
  +  LPair: TJSONPair;
  +begin
  +  Result := False;
  +  if Values[AName] <> nil then
  +  begin
  +    LPair := RemovePair(AName);
  +    if LPair.Owned then
  +      FreeAndNil(LPair);
  +    Result := True;
  +  end;
   end;
   
   class function TJSONObjectHelper.DictionaryToJSON(const ADictionary: TObject): TJSONObject;
  
positive.code: procedure TJSONObjectHelper.WriteArrayValue(const AName: string;
    const AArray: TJSONArray);
  begin
    AddPair(AName, AArray);
  end;
  
  
negative.code: 
  procedure TJSONObjectHelper.WriteBoolValue(const AName: string;
    const AValue: Boolean);
  begin
    DeletePair(AName);
    AddPair(AName, BooleanToTJSON(AValue));
  end;
  
  