diff --git a/eng/ProjectReferences.props b/eng/ProjectReferences.props
index 51da91165abfea63ed2eec860c5054e88c50c30c..ef94b4dac56b0487e280d1970985e003e4035a27 100644
--- a/eng/ProjectReferences.props
+++ b/eng/ProjectReferences.props
@@ -96,6 +96,7 @@
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Core" ProjectPath="$(RepositoryRoot)src\Mvc\src\Microsoft.AspNetCore.Mvc.Core\Microsoft.AspNetCore.Mvc.Core.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Cors" ProjectPath="$(RepositoryRoot)src\Mvc\src\Microsoft.AspNetCore.Mvc.Cors\Microsoft.AspNetCore.Mvc.Cors.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.DataAnnotations" ProjectPath="$(RepositoryRoot)src\Mvc\src\Microsoft.AspNetCore.Mvc.DataAnnotations\Microsoft.AspNetCore.Mvc.DataAnnotations.csproj" />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Formatters.Json" ProjectPath="$(RepositoryRoot)src\Mvc\src\Microsoft.AspNetCore.Mvc.Formatters.Json\Microsoft.AspNetCore.Mvc.Formatters.Json.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Formatters.Xml" ProjectPath="$(RepositoryRoot)src\Mvc\src\Microsoft.AspNetCore.Mvc.Formatters.Xml\Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Localization" ProjectPath="$(RepositoryRoot)src\Mvc\src\Microsoft.AspNetCore.Mvc.Localization\Microsoft.AspNetCore.Mvc.Localization.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" ProjectPath="$(RepositoryRoot)src\Mvc\src\Microsoft.AspNetCore.Mvc.NewtonsoftJson\Microsoft.AspNetCore.Mvc.NewtonsoftJson.csproj" />
diff --git a/src/Framework/Microsoft.AspNetCore.App.props b/src/Framework/Microsoft.AspNetCore.App.props
index 8384ce8c3f0c323832760f13f704213787f0177b..3ae3a637aa0de83d789be323cd69b319584d5663 100644
--- a/src/Framework/Microsoft.AspNetCore.App.props
+++ b/src/Framework/Microsoft.AspNetCore.App.props
@@ -46,6 +46,7 @@
     <Dependency Include="Microsoft.AspNetCore.Mvc.Core" />
     <Dependency Include="Microsoft.AspNetCore.Mvc.Cors" />
     <Dependency Include="Microsoft.AspNetCore.Mvc.DataAnnotations" />
+    <Dependency Include="Microsoft.AspNetCore.Mvc.Formatters.Json" />
     <Dependency Include="Microsoft.AspNetCore.Mvc.Formatters.Xml" />
     <Dependency Include="Microsoft.AspNetCore.Mvc.Localization" />
     <Dependency Include="Microsoft.AspNetCore.Mvc.Razor" />
diff --git a/src/Mvc/Mvc.sln b/src/Mvc/Mvc.sln
index 66b627bbb85d19b8235fb3f988b5b898a3f50dfb..5616cb59d623703ef0533f391b43021d327d3656 100644
--- a/src/Mvc/Mvc.sln
+++ b/src/Mvc/Mvc.sln
@@ -270,6 +270,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Mvc.Ra
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components", "..\Components\Components\src\Microsoft.AspNetCore.Components.csproj", "{69E18B21-E4B9-4866-ABDA-3C2D9664D24C}"
 EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Mvc.Formatters.Json", "src\Microsoft.AspNetCore.Mvc.Formatters.Json\Microsoft.AspNetCore.Mvc.Formatters.Json.csproj", "{7B35EA78-7D47-4AFA-982C-899E7C55CBF1}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -1588,6 +1590,18 @@ Global
 		{69E18B21-E4B9-4866-ABDA-3C2D9664D24C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{69E18B21-E4B9-4866-ABDA-3C2D9664D24C}.Release|x86.ActiveCfg = Release|Any CPU
 		{69E18B21-E4B9-4866-ABDA-3C2D9664D24C}.Release|x86.Build.0 = Release|Any CPU
+		{7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Debug|x86.Build.0 = Debug|Any CPU
+		{7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Release|Any CPU.Build.0 = Release|Any CPU
+		{7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Release|x86.ActiveCfg = Release|Any CPU
+		{7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -1706,6 +1720,7 @@ Global
 		{F2D4A859-7B84-403E-9745-01032EC705C5} = {32285FA4-6B46-4D6B-A840-2B13E4C8B58E}
 		{23A6033D-2AA6-4629-BC1B-14694E3794FF} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1}
 		{69E18B21-E4B9-4866-ABDA-3C2D9664D24C} = {5FE3048A-E96B-44F8-A7C4-FC590D7E04B4}
+		{7B35EA78-7D47-4AFA-982C-899E7C55CBF1} = {32285FA4-6B46-4D6B-A840-2B13E4C8B58E}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {63D344F6-F86D-40E6-85B9-0AABBE338C4A}
diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/ApplicationParts/ApplicationAssembliesProvider.cs b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/ApplicationParts/ApplicationAssembliesProvider.cs
index b8e54d1d0d76004f61bdc7e88ae7a86d0eb4710f..c7169c7230131e4ba9d8cdce5cd67e06478649b9 100644
--- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/ApplicationParts/ApplicationAssembliesProvider.cs
+++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/ApplicationParts/ApplicationAssembliesProvider.cs
@@ -24,6 +24,7 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationParts
             "Microsoft.AspNetCore.Mvc.Core",
             "Microsoft.AspNetCore.Mvc.Cors",
             "Microsoft.AspNetCore.Mvc.DataAnnotations",
+            "Microsoft.AspNetCore.Mvc.Formatters.Json",
             "Microsoft.AspNetCore.Mvc.Formatters.Xml",
             "Microsoft.AspNetCore.Mvc.Localization",
             "Microsoft.AspNetCore.Mvc.NewtonsoftJson",
diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Json/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Json/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..2bc49661a17763e9c3b05d0094e12bdc1957dde5
--- /dev/null
+++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Json/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj
@@ -0,0 +1,13 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <Description>ASP.NET Core MVC formatters for JSON input and output.</Description>
+    <TargetFramework>netcoreapp3.0</TargetFramework>
+    <GenerateDocumentationFile>true</GenerateDocumentationFile>
+    <PackageTags>aspnetcore;aspnetcoremvc;json</PackageTags>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.Mvc.Core" />
+  </ItemGroup>
+</Project>
diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Json/Properties/AssemblyInfo.cs b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Json/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000000000000000000000000000000000..95a17d64620f37222cc90c207048037690ed6ec5
--- /dev/null
+++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Json/Properties/AssemblyInfo.cs
@@ -0,0 +1,8 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System.Runtime.CompilerServices;
+using Microsoft.AspNetCore.Mvc;
+
+[assembly: TypeForwardedTo(typeof(JsonResult))]
+
diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc/Microsoft.AspNetCore.Mvc.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc/Microsoft.AspNetCore.Mvc.csproj
index 525841955dac3235af762f9401b0849ae5686704..8dd6d2b434d3e166f7092a92d03e17d71e9ac097 100644
--- a/src/Mvc/src/Microsoft.AspNetCore.Mvc/Microsoft.AspNetCore.Mvc.csproj
+++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc/Microsoft.AspNetCore.Mvc.csproj
@@ -13,6 +13,7 @@
     <Reference Include="Microsoft.AspNetCore.Mvc.ApiExplorer" />
     <Reference Include="Microsoft.AspNetCore.Mvc.Cors" />
     <Reference Include="Microsoft.AspNetCore.Mvc.DataAnnotations" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.Formatters.Json" />
     <Reference Include="Microsoft.AspNetCore.Mvc.Localization" />
     <Reference Include="Microsoft.AspNetCore.Mvc.RazorPages" />
     <Reference Include="Microsoft.AspNetCore.Mvc.TagHelpers" />