FsConfig doesn't support JSON Array
AntyaDev opened this issue · 5 comments
Description
FsConfig doesn't support JSON Array
Repro steps
-
Define config.json
here is a JSON:
{
data: ["1", "2"]
} -
Define F# type
type Config = {
Data: string list
} -
Parse
let config = ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("config.json")
.Build()
|> AppConfig
let result = config.Get()
Expected behavior
result should contain not empty Config.Data
Actual behavior
result contains empty Config.Data
- Operating system Windows 10 x64
Hi @AntyaDev,
Can you try with comma separated string instead of the SON array like below?
{
"data": "1,2"
}
The documention for the list is here https://github.com/demystifyfp/FsConfig#list-type
It will not work with complex types.
I mean,
settings: MySettings list
type MySettings = {
}
It is a current limitation. It is due to the fact the list was initially supported for environment variables where we don't have the sophistication of representing a list of a complex type as a string. I am open to a PR or design suggestion if you'd like to contribute.
Ah, I see now
FsConfig is a F# library for reading configuration data from environment variables
It's related only for env variables... I just thought FsConfig means - I can parse any config because the name is very general.
@AntyaDev Just to clarify, It supports AppConfig in addition to Env variables with this limitation.