anchor.diff:                begin
                   PropType := PropList[Index].PropType^;
                   D := GetFloatProp(AObject, PropList[Index]);
  +                if ASkipDefaultValues and (D = 0) then Continue;
                   if (PropType = TypeInfo(TDateTime)) or (PropType = TypeInfo(TDate)) or (PropType = TypeInfo(TTime)) then
                     InternAdd(PropName, TDateTime(D))
                   else
  
positive.code:   end;
  end;
  
  procedure TJsonObject.FromSimpleObject(AObject: TObject; ALowerCamelCase: Boolean);
  var
    Index, Count: Integer;
    PropList: PPropList;
    PropType: PTypeInfo;
    PropName: string;
    V: Variant;
    D: Double;
    Ch: Char;
  begin
    Clear;
    if AObject = nil then
  
negative.code: 
            case PropList[Index].PropType^.Kind of
              tkInteger, tkChar, tkWChar:
                begin
                  intVal := GetOrdProp(AObject, PropList[Index]);
                  if ASkipDefaultValues and (intVal = 0) then Continue;
                  InternAdd(PropName, intVal);
                end;
  
              tkEnumeration:
                begin
                  PropType := PropList[Index].PropType^;
                  if (PropType = TypeInfo(Boolean)) or (PropType = TypeInfo(ByteBool)) or
                     (PropType = TypeInfo(WordBool)) or (PropType = TypeInfo(LongBool)) then
                  begin
                    boolVal := GetOrdProp(AObject, PropList[Index]) <> 0;
                    if ASkipDefaultValues and not boolVal then Continue;
                    InternAdd(PropName, boolVal)
                  end
                  else
                    InternAdd(PropName, GetOrdProp(AObject, PropList[Index]));
                end;
  