diff --git a/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationFileParser.cs b/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationFileParser.cs index 4029c922504fdf..87d54dfb4fd68d 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationFileParser.cs +++ b/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationFileParser.cs @@ -55,7 +55,7 @@ private void VisitElement(JsonElement element) ExitContext(); } - if (isEmpty) + if (isEmpty && _currentPath != null) { _data[_currentPath] = null; } diff --git a/src/libraries/Microsoft.Extensions.Configuration.Json/tests/IntegrationTest.cs b/src/libraries/Microsoft.Extensions.Configuration.Json/tests/IntegrationTest.cs index b206e3180033a2..778872ff131a2e 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.Json/tests/IntegrationTest.cs +++ b/src/libraries/Microsoft.Extensions.Configuration.Json/tests/IntegrationTest.cs @@ -11,6 +11,21 @@ namespace Microsoft.Extensions.Configuration.Json.Test { public class IntegrationTest { + [Fact] + public void MinimalJson_GetChildrenFromConfiguration_NoConfigurationSection() + { + var json = @"{ + }"; + + var configurationBuilder = new ConfigurationBuilder(); + configurationBuilder.AddJsonStream(TestStreamHelpers.StringToStream(json)); + var configuration = configurationBuilder.Build(); + + Assert.Collection(configuration.GetChildren(), + new Action[] { + }); + } + [Fact] public void LoadJsonConfiguration() {