Example #1
0
 /// <summary>
 ///     序列化JSON字符串不附带值为NULL的字符串
 /// </summary>
 /// <param name="jsonData"></param>
 /// <param name="contractResolverType"></param>
 /// <returns></returns>
 public static string ToJsonWithOutNull(this object jsonData,
                                        ContractResolverType contractResolverType = ContractResolverType.CamelCase)
 {
     return(JsonConvert.SerializeObject(jsonData, new JsonSerializerSettings
     {
         ContractResolver = GetContractResolver(contractResolverType),
         NullValueHandling = NullValueHandling.Ignore
     }));
 }
Example #2
0
 /// <summary>
 ///     将对象转换为Json字符串
 /// </summary>
 /// <param name="jsonData"></param>
 /// <param name="contractResolverType"></param>
 /// <returns></returns>
 public static string ToJson(this object jsonData,
                             ContractResolverType contractResolverType = ContractResolverType.CamelCase)
 {
     return(JsonConvert.SerializeObject(jsonData, new JsonSerializerSettings
     {
         ContractResolver = GetContractResolver(contractResolverType),
         ReferenceLoopHandling = ReferenceLoopHandling.Ignore
     }));
 }
Example #3
0
        /// <summary>
        ///     获取IContractResolver
        /// </summary>
        /// <param name="contractResolverType"></param>
        /// <returns></returns>
        private static IContractResolver GetContractResolver(ContractResolverType contractResolverType)
        {
            switch (contractResolverType)
            {
            case ContractResolverType.Default:
                return(DefaultContractResolver);

            case ContractResolverType.CamelCase:
                return(CamelCasePropertyNamesContractResolver);

            default:
                return(DefaultContractResolver);
            }
        }
Example #4
0
        /// <summary>
        ///     Returns the JsonMediaTypeFormatter to use with this controller.
        /// </summary>
        /// <param name="resolverType">
        ///     A ContractResolverType representing the desired behavior of serializationProperties, OptIn or OptOut.
        /// </param>
        /// <param name="properties">
        ///     A list of properties to exclude or include, depending on the ContractResolverType, in the serialized result.
        /// </param>
        /// <returns>A configured instance of JsonMediaTypeFormatter</returns>
        protected JsonMediaTypeFormatter JsonFormatter(ContractResolverType resolverType, params string[] properties)
        {
            JsonMediaTypeFormatter retVal = new JsonMediaTypeFormatter
            {
                SerializerSettings = new JsonSerializerSettings
                {
                    DateFormatHandling   = DateFormatHandling.MicrosoftDateFormat,
                    DateTimeZoneHandling = DateTimeZoneHandling.Utc,
                    Formatting           = Formatting.Indented,
                    ContractResolver     = new ContractResolver(resolverType, properties),
                },
            };

            retVal.SerializerSettings.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter());

            return(retVal);
        }
Example #5
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="ContractResolver"/> class with the supplied properties list, resolver
 ///     type and includeSecondaryTypes value.
 /// </summary>
 /// <param name="resolverType">
 ///     The type of contract resolver; determines whether the supplied list will be included or excluded from serialization.
 /// </param>
 /// <param name="properties">A list of properties to include or exclude from serialization.</param>
 public ContractResolver(ContractResolverType resolverType, params string[] properties)
     : base()
 {
     Properties   = properties;
     ResolverType = resolverType;
 }