extended JSONEncoder to support Decimal