示例#1
0
        public static void ConfigureCamelCase(
            this JsonMediaTypeFormatter formatter,
            ReferenceLoopHandling referenceLoopHandling           = ReferenceLoopHandling.Ignore,
            DateTimeZoneHandling dateTimeZoneHandling             = DateTimeZoneHandling.Utc,
            NullValueHandling nullValueHandling                   = NullValueHandling.Ignore,
            PreserveReferencesHandling preserveReferencesHandling = PreserveReferencesHandling.None,
            bool useDataContractJsonSerializer      = false,
            bool useJsonMediaTypeForHtmlHeaderValue = true)
        {
            formatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            formatter.SerializerSettings.Converters.Add(new StringEnumConverter {
                CamelCaseText = true
            });

            formatter.SerializerSettings.ReferenceLoopHandling      = referenceLoopHandling;
            formatter.SerializerSettings.DateTimeZoneHandling       = dateTimeZoneHandling;
            formatter.SerializerSettings.NullValueHandling          = nullValueHandling;
            formatter.SerializerSettings.PreserveReferencesHandling = preserveReferencesHandling;
            formatter.UseDataContractJsonSerializer = useDataContractJsonSerializer;

            if (useJsonMediaTypeForHtmlHeaderValue)
            {
                formatter.MediaTypeMappings.Add(new RequestHeaderMapping("Accept", "text/html", StringComparison.InvariantCultureIgnoreCase, true, "application/json"));
            }
        }
示例#2
0
        public static JsonSerializerSettings CreateSettings(bool?indent = null, PreserveReferencesHandling referencesHandling = PreserveReferencesHandling.None, ReferenceLoopHandling loopHandling = ReferenceLoopHandling.Ignore, IContractResolver contractResolver = null, CultureInfo culture = null)
        {
            JsonSerializerSettings settings = new JsonSerializerSettings();

            SetDefaults(settings, indent, referencesHandling, loopHandling, contractResolver, culture);
            return(settings);
        }
示例#3
0
 public JsonNetSerializer(PreserveReferencesHandling preserveReferencesHandling)
 {
     settings = new JsonSerializerSettings();
     settings.ReferenceLoopHandling      = ReferenceLoopHandling.Ignore;
     settings.PreserveReferencesHandling = preserveReferencesHandling;
     settings.ContractResolver           = new EFContractResolver();
 }
示例#4
0
 public BeetleApiConfig(NullValueHandling nullValueHandling,
                        TypeNameHandling typeNameHandling                     = TypeNameHandling.Objects,
                        Formatting formatting                                 = Formatting.Indented,
                        ReferenceLoopHandling referenceLoopHandling           = ReferenceLoopHandling.Ignore,
                        PreserveReferencesHandling preserveReferencesHandling = PreserveReferencesHandling.Objects,
                        DateTimeZoneHandling dateTimeZoneHandling             = DateTimeZoneHandling.Local)
     : base(nullValueHandling, typeNameHandling, formatting, referenceLoopHandling,
            preserveReferencesHandling, dateTimeZoneHandling)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
 /// </summary>
 public JsonSerializer()
 {
     _referenceLoopHandling      = JsonSerializerSettings.DefaultReferenceLoopHandling;
     _missingMemberHandling      = JsonSerializerSettings.DefaultMissingMemberHandling;
     _nullValueHandling          = JsonSerializerSettings.DefaultNullValueHandling;
     _defaultValueHandling       = JsonSerializerSettings.DefaultDefaultValueHandling;
     _objectCreationHandling     = JsonSerializerSettings.DefaultObjectCreationHandling;
     _preserveReferencesHandling = JsonSerializerSettings.DefaultPreserveReferencesHandling;
     _typeNameHandling           = JsonSerializerSettings.DefaultTypeNameHandling;
     _binder = DefaultSerializationBinder.Instance;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
 /// </summary>
 public JsonSerializer()
 {
     _referenceLoopHandling = JsonSerializerSettings.DefaultReferenceLoopHandling;
       _missingMemberHandling = JsonSerializerSettings.DefaultMissingMemberHandling;
       _nullValueHandling = JsonSerializerSettings.DefaultNullValueHandling;
       _defaultValueHandling = JsonSerializerSettings.DefaultDefaultValueHandling;
       _objectCreationHandling = JsonSerializerSettings.DefaultObjectCreationHandling;
       _preserveReferencesHandling = JsonSerializerSettings.DefaultPreserveReferencesHandling;
       _typeNameHandling = JsonSerializerSettings.DefaultTypeNameHandling;
       _binder = DefaultSerializationBinder.Instance;
 }
        public static string Serialize(object obj, PreserveReferencesHandling preserveReferencesHandling = PreserveReferencesHandling.Objects)
        {
            if (obj == null)
            {
                throw new ArgumentNullException(nameof(obj));
            }
            var jss = new JsonSerializerSettings {
                PreserveReferencesHandling = preserveReferencesHandling, DateFormatString = "yyyy-MM-ddTHH:mm:ss"
            };

            return(JsonConvert.SerializeObject(obj, jss));
        }
示例#8
0
 public JsonSerializer()
 {
     this._referenceLoopHandling      = ReferenceLoopHandling.Error;
     this._missingMemberHandling      = MissingMemberHandling.Ignore;
     this._nullValueHandling          = NullValueHandling.Include;
     this._defaultValueHandling       = DefaultValueHandling.Include;
     this._objectCreationHandling     = ObjectCreationHandling.Auto;
     this._preserveReferencesHandling = PreserveReferencesHandling.None;
     this._constructorHandling        = ConstructorHandling.Default;
     this._typeNameHandling           = TypeNameHandling.None;
     this._context = JsonSerializerSettings.DefaultContext;
     this._binder  = (SerializationBinder)DefaultSerializationBinder.Instance;
 }
示例#9
0
        /// <summary>
        /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
        /// </summary>
        public JsonSerializer()
        {
            this._referenceLoopHandling      = JsonSerializerSettings.DefaultReferenceLoopHandling;
            this._missingMemberHandling      = JsonSerializerSettings.DefaultMissingMemberHandling;
            this._nullValueHandling          = JsonSerializerSettings.DefaultNullValueHandling;
            this._defaultValueHandling       = JsonSerializerSettings.DefaultDefaultValueHandling;
            this._objectCreationHandling     = JsonSerializerSettings.DefaultObjectCreationHandling;
            this._preserveReferencesHandling = JsonSerializerSettings.DefaultPreserveReferencesHandling;
            this._constructorHandling        = JsonSerializerSettings.DefaultConstructorHandling;
            this._typeNameHandling           = JsonSerializerSettings.DefaultTypeNameHandling;
            this.Context = JsonSerializerSettings.DefaultContext;

            this._binder = DefaultSerializationBinder.Instance;
        }
示例#10
0
        /// <summary>
        /// Tests the PreserveReferencesHandling property in a JSON serializer settings object.
        /// </summary>
        /// <param name="preserveReferencesHandling">Expected PreserveReferencesHandling.</param>
        /// <returns>The same JSON serializer settings test builder.</returns>
        public IAndJsonSerializerSettingsTestBuilder WithPreserveReferencesHandling(PreserveReferencesHandling preserveReferencesHandling)
        {
            this.jsonSerializerSettings.PreserveReferencesHandling = preserveReferencesHandling;
            this.validations.Add((expected, actual) =>
            {
                if (!CommonValidator.CheckEquality(
                        expected.PreserveReferencesHandling,
                        actual.PreserveReferencesHandling))
                {
                    this.ThrowNewJsonResultAssertionException(
                        string.Format("{0} preserve references handling", expected.PreserveReferencesHandling),
                        string.Format("in fact found {0}", actual.PreserveReferencesHandling));
                }
            });

            return(this);
        }
示例#11
0
 public BeetleConfig(NullValueHandling nullValueHandling,
                     TypeNameHandling typeNameHandling                     = TypeNameHandling.Objects,
                     Formatting formatting                                 = Formatting.Indented,
                     ReferenceLoopHandling referenceLoopHandling           = ReferenceLoopHandling.Ignore,
                     PreserveReferencesHandling preserveReferencesHandling = PreserveReferencesHandling.Objects,
                     DateTimeZoneHandling dateTimeZoneHandling             = DateTimeZoneHandling.Local)
     : this(new JsonSerializerSettings {
     NullValueHandling = nullValueHandling,
     TypeNameHandling = typeNameHandling,
     TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple,
     Formatting = formatting,
     ReferenceLoopHandling = referenceLoopHandling,
     PreserveReferencesHandling = preserveReferencesHandling,
     DateTimeZoneHandling = dateTimeZoneHandling
 })
 {
 }
示例#12
0
        /// <summary>
        /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
        /// </summary>
        public JsonSerializer()
        {
            _referenceLoopHandling      = JsonSerializerSettings.DefaultReferenceLoopHandling;
            _missingMemberHandling      = JsonSerializerSettings.DefaultMissingMemberHandling;
            _nullValueHandling          = JsonSerializerSettings.DefaultNullValueHandling;
            _defaultValueHandling       = JsonSerializerSettings.DefaultDefaultValueHandling;
            _objectCreationHandling     = JsonSerializerSettings.DefaultObjectCreationHandling;
            _preserveReferencesHandling = JsonSerializerSettings.DefaultPreserveReferencesHandling;
            _constructorHandling        = JsonSerializerSettings.DefaultConstructorHandling;
            _typeNameHandling           = JsonSerializerSettings.DefaultTypeNameHandling;
            _metadataPropertyHandling   = JsonSerializerSettings.DefaultMetadataPropertyHandling;
            _context = JsonSerializerSettings.DefaultContext;
            _binder  = DefaultSerializationBinder.Instance;

            _culture          = JsonSerializerSettings.DefaultCulture;
            _contractResolver = DefaultContractResolver.Instance;
        }
示例#13
0
 public static string TrySerialize(object obj, PreserveReferencesHandling preserveReferencesHandling = PreserveReferencesHandling.Objects, bool includeNullFields = true)
 {
     try
     {
         if (obj == null)
         {
             return("");
         }
         var jss = new JsonSerializerSettings {
             PreserveReferencesHandling = preserveReferencesHandling, DateFormatString = "yyyy-MM-ddTHH:mm:ss", NullValueHandling = includeNullFields ? NullValueHandling.Include : NullValueHandling.Ignore
         };
         return(JsonConvert.SerializeObject(obj, jss));
     }
     catch (Exception)
     {
         return("");
     }
 }
 private bool HasFlag(PreserveReferencesHandling value, PreserveReferencesHandling flag)
 {
   return ((value & flag) == flag);
 }
示例#15
0
 // For future, someone may want to define their own custom Handler with different behaviors of PreserveReferenceHandling on Serialize vs Deserialize.
 private ReferenceHandling(PreserveReferencesHandling preserveHandlingOnSerialize, PreserveReferencesHandling preserveHandlingOnDeserialize)
 {
     _preserveHandlingOnSerialize   = preserveHandlingOnSerialize;
     _preserveHandlingOnDeserialize = preserveHandlingOnDeserialize;
 }
示例#16
0
 /// <summary>
 /// Creates a new instance of <see cref="ReferenceHandling"/> using the specified <paramref name="handling"/>
 /// </summary>
 /// <param name="handling">The specified behavior for write/read preserved references.</param>
 private ReferenceHandling(PreserveReferencesHandling handling) : this(handling, handling)
 {
 }
示例#17
0
 // Token: 0x0600099E RID: 2462 RVA: 0x00009015 File Offset: 0x00007215
 private bool method_26(PreserveReferencesHandling preserveReferencesHandling_0, PreserveReferencesHandling preserveReferencesHandling_1)
 {
     return((preserveReferencesHandling_0 & preserveReferencesHandling_1) == preserveReferencesHandling_1);
 }
 public JsonResponseSerializerAttribute(PreserveReferencesHandling referenceHandling)
 {
     ReferenceHandling = referenceHandling;
 }
 public JsonResponseSerializerAttribute(TypeNameHandling typeHandling, PreserveReferencesHandling referenceHandling)
 {
     TypeHandling      = typeHandling;
     ReferenceHandling = referenceHandling;
 }
示例#20
0
 protected JsonNetResult JsonNet(object data, JsonRequestBehavior behavior = JsonRequestBehavior.DenyGet, PreserveReferencesHandling preserveReferencesHandling = PreserveReferencesHandling.None)
 {
     return(new JsonNetResult(data, new JsonSerializerSettings
     {
         ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
         PreserveReferencesHandling = preserveReferencesHandling
     }, behavior));
 }
示例#21
0
 private bool HasFlag(PreserveReferencesHandling value, PreserveReferencesHandling flag)
 {
     return((value & flag) == flag);
 }
示例#22
0
        public static JsonSerializerSettings SetDefaults([NotNull] JsonSerializerSettings value, bool?indent = null, PreserveReferencesHandling referencesHandling = PreserveReferencesHandling.None, ReferenceLoopHandling loopHandling = ReferenceLoopHandling.Ignore, IContractResolver contractResolver = null, CultureInfo culture = null)
        {
            value.ObjectCreationHandling = ObjectCreationHandling.Replace;
            value.Context                    = new StreamingContext(StreamingContextStates.Clone);
            value.EqualityComparer           = ReferenceComparer.Default;
            value.CheckAdditionalContent     = true;
            value.NullValueHandling          = NullValueHandling.Ignore;
            value.PreserveReferencesHandling = referencesHandling;
            value.ReferenceLoopHandling      = loopHandling;
            value.DateFormatString           = "O";

            if (indent.HasValue)
            {
                value.Formatting = indent == true
                                                                                ? Formatting.Indented
                                                                                : Formatting.None;
            }

            if (contractResolver != null)
            {
                value.ContractResolver = contractResolver;
            }
            if (culture != null)
            {
                value.Culture = culture;
            }
            return(value);
        }
示例#23
0
 // For future, someone may want to define their own custom Handler with different behaviors of PreserveReferenceHandling on Serialize vs Deserialize.
 private ReferenceHandling(PreserveReferencesHandling preserveHandlingOnSerialize, PreserveReferencesHandling preserveHandlingOnDeserialize)
 {
     _shouldReadPreservedReferences  = preserveHandlingOnDeserialize == PreserveReferencesHandling.All;
     _shouldWritePreservedReferences = preserveHandlingOnSerialize == PreserveReferencesHandling.All;
 }