# Microsoft.AspNetCore.Mvc.Formatters.Json

``` diff
 {
-    namespace Microsoft.AspNetCore.Mvc {
 {
-        public static class JsonPatchExtensions {
 {
-            public static void ApplyTo<T>(this JsonPatchDocument<T> patchDoc, T objectToApplyTo, ModelStateDictionary modelState) where T : class;

-            public static void ApplyTo<T>(this JsonPatchDocument<T> patchDoc, T objectToApplyTo, ModelStateDictionary modelState, string prefix) where T : class;

-        }
-        public class JsonResult : ActionResult, IActionResult, IStatusCodeActionResult {
 {
-            public JsonResult(object value);

-            public JsonResult(object value, JsonSerializerSettings serializerSettings);

-            public string ContentType { get; set; }

-            public JsonSerializerSettings SerializerSettings { get; set; }

-            public int? StatusCode { get; set; }

-            public object Value { get; set; }

-            public override Task ExecuteResultAsync(ActionContext context);

-        }
-        public class MvcJsonOptions : IEnumerable, IEnumerable<ICompatibilitySwitch> {
 {
-            public MvcJsonOptions();

-            public bool AllowInputFormatterExceptionMessages { get; set; }

-            public JsonSerializerSettings SerializerSettings { get; }

-            IEnumerator<ICompatibilitySwitch> System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch>.GetEnumerator();

-            IEnumerator System.Collections.IEnumerable.GetEnumerator();

-        }
-    }
-    namespace Microsoft.AspNetCore.Mvc.Formatters {
 {
-        public class JsonInputFormatter : TextInputFormatter, IInputFormatterExceptionPolicy {
 {
-            public JsonInputFormatter(ILogger logger, JsonSerializerSettings serializerSettings, ArrayPool<char> charPool, ObjectPoolProvider objectPoolProvider);

-            public JsonInputFormatter(ILogger logger, JsonSerializerSettings serializerSettings, ArrayPool<char> charPool, ObjectPoolProvider objectPoolProvider, MvcOptions options, MvcJsonOptions jsonOptions);

-            public JsonInputFormatter(ILogger logger, JsonSerializerSettings serializerSettings, ArrayPool<char> charPool, ObjectPoolProvider objectPoolProvider, bool suppressInputFormatterBuffering);

-            public JsonInputFormatter(ILogger logger, JsonSerializerSettings serializerSettings, ArrayPool<char> charPool, ObjectPoolProvider objectPoolProvider, bool suppressInputFormatterBuffering, bool allowInputFormatterExceptionMessages);

-            public virtual InputFormatterExceptionPolicy ExceptionPolicy { get; }

-            protected JsonSerializerSettings SerializerSettings { get; }

-            protected virtual JsonSerializer CreateJsonSerializer();

-            public override Task<InputFormatterResult> ReadRequestBodyAsync(InputFormatterContext context, Encoding encoding);

-            protected virtual void ReleaseJsonSerializer(JsonSerializer serializer);

-        }
-        public class JsonOutputFormatter : TextOutputFormatter {
 {
-            public JsonOutputFormatter(JsonSerializerSettings serializerSettings, ArrayPool<char> charPool);

-            public JsonSerializerSettings PublicSerializerSettings { get; }

-            protected JsonSerializerSettings SerializerSettings { get; }

-            protected virtual JsonSerializer CreateJsonSerializer();

-            protected virtual JsonWriter CreateJsonWriter(TextWriter writer);

-            public void WriteObject(TextWriter writer, object value);

-            public override Task WriteResponseBodyAsync(OutputFormatterWriteContext context, Encoding selectedEncoding);

-        }
-        public class JsonPatchInputFormatter : JsonInputFormatter {
 {
-            public JsonPatchInputFormatter(ILogger logger, JsonSerializerSettings serializerSettings, ArrayPool<char> charPool, ObjectPoolProvider objectPoolProvider);

-            public JsonPatchInputFormatter(ILogger logger, JsonSerializerSettings serializerSettings, ArrayPool<char> charPool, ObjectPoolProvider objectPoolProvider, MvcOptions options, MvcJsonOptions jsonOptions);

-            public JsonPatchInputFormatter(ILogger logger, JsonSerializerSettings serializerSettings, ArrayPool<char> charPool, ObjectPoolProvider objectPoolProvider, bool suppressInputFormatterBuffering);

-            public JsonPatchInputFormatter(ILogger logger, JsonSerializerSettings serializerSettings, ArrayPool<char> charPool, ObjectPoolProvider objectPoolProvider, bool suppressInputFormatterBuffering, bool allowInputFormatterExceptionMessages);

-            public override InputFormatterExceptionPolicy ExceptionPolicy { get; }

-            public override bool CanRead(InputFormatterContext context);

-            public override Task<InputFormatterResult> ReadRequestBodyAsync(InputFormatterContext context, Encoding encoding);

-        }
-        public static class JsonSerializerSettingsProvider {
 {
-            public static JsonSerializerSettings CreateSerializerSettings();

-        }
-    }
-    namespace Microsoft.AspNetCore.Mvc.Formatters.Json {
 {
-        public class JsonPatchOperationsArrayProvider : IApiDescriptionProvider {
 {
-            public JsonPatchOperationsArrayProvider(IModelMetadataProvider modelMetadataProvider);

-            public int Order { get; }

-            public void OnProvidersExecuted(ApiDescriptionProviderContext context);

-            public void OnProvidersExecuting(ApiDescriptionProviderContext context);

-        }
-    }
-    namespace Microsoft.AspNetCore.Mvc.Formatters.Json.Internal {
 {
-        public class JsonArrayPool<T> : IArrayPool<T> {
 {
-            public JsonArrayPool(ArrayPool<T> inner);

-            public T[] Rent(int minimumLength);

-            public void Return(T[] array);

-        }
-        public class JsonResultExecutor {
 {
-            public JsonResultExecutor(IHttpResponseStreamWriterFactory writerFactory, ILogger<JsonResultExecutor> logger, IOptions<MvcJsonOptions> options, ArrayPool<char> charPool);

-            protected ILogger Logger { get; }

-            protected MvcJsonOptions Options { get; }

-            protected IHttpResponseStreamWriterFactory WriterFactory { get; }

-            public virtual Task ExecuteAsync(ActionContext context, JsonResult result);

-        }
-        public class JsonSerializerObjectPolicy : IPooledObjectPolicy<JsonSerializer> {
 {
-            public JsonSerializerObjectPolicy(JsonSerializerSettings serializerSettings);

-            public JsonSerializer Create();

-            public bool Return(JsonSerializer serializer);

-        }
-        public class MvcJsonMvcOptionsSetup : IConfigureOptions<MvcOptions> {
 {
-            public MvcJsonMvcOptionsSetup(ILoggerFactory loggerFactory, IOptions<MvcJsonOptions> jsonOptions, ArrayPool<char> charPool, ObjectPoolProvider objectPoolProvider);

-            public void Configure(MvcOptions options);

-        }
-    }
-    namespace Microsoft.Extensions.DependencyInjection {
 {
-        public static class MvcJsonMvcBuilderExtensions {
 {
-            public static IMvcBuilder AddJsonOptions(this IMvcBuilder builder, Action<MvcJsonOptions> setupAction);

-        }
-        public static class MvcJsonMvcCoreBuilderExtensions {
 {
-            public static IMvcCoreBuilder AddJsonFormatters(this IMvcCoreBuilder builder);

-            public static IMvcCoreBuilder AddJsonFormatters(this IMvcCoreBuilder builder, Action<JsonSerializerSettings> setupAction);

-            public static IMvcCoreBuilder AddJsonOptions(this IMvcCoreBuilder builder, Action<MvcJsonOptions> setupAction);

-        }
-        public static class MvcJsonOptionsExtensions {
 {
-            public static MvcJsonOptions UseCamelCasing(this MvcJsonOptions options, bool processDictionaryKeys);

-            public static MvcJsonOptions UseMemberCasing(this MvcJsonOptions options);

-        }
-    }
 }
```

