appsettings.json is the app's main settings file. It holds configuration data, such as connection strings and logging levels, in JSON format.
It is the base layer of configuration. An environment file such as appsettings.Production.json overrides its keys, and user secrets, environment variables and command-line arguments override both. By default both files reload when they change, so a saved edit takes effect without a restart.
Code reads a nested value with a colon path, such as Logging:LogLevel:Default. Never store passwords or other secrets in this file, because it often ends up in source control.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.