当我尝试将数组作为 local.settings.json 文件中的一个值插入时:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"AzureWebJobsDashboard": "",
"myArray": [
{
"key1": "value1",
"key2": "value2"
},
{
"key1": "value3",
"key2": "value4"
}
]
},
"ConnectionStrings": {
"SQLConnectionString": "myConnectionString"
}
}
我开始得到例外。可以在local.settings.json
文件中使用数组吗?如果他们可以,那么正确的格式是什么?
答案 0 :(得分:5)
您需要使用数组索引器格式。
例如
"myArray:[0]:key1": "value1",
"myArray:[0]:key2": "value2",
"myArray:[1]:key1": "value3",
"myArray:[1]:key2": "value4"
答案 1 :(得分:5)
现在可以!
我的本地设置文件如下:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true"
},
"CustomArray": [
{
"CustomProp1": "foo0",
"CustomProp2": "bar0"
},
{
"CustomProp1": "foo1",
"CustomProp2": "bar1"
}
]
}
然后,要在我的启动程序中解析该数组,我会看到以下内容:
var settings = new List<CustomSetting>();
config.GetSection("CustomArray").Bind(settings);
...其中CustomSetting
是这样的类:
public class CustomSetting
{
public string CustomProp1 { get; set; }
public string CustomProp2 { get; set; }
}
我正在使用Microsoft.Extensions.Configuration
Nuget软件包的3.1.5版本和Microsoft.NET.Sdk.Functions
Azure Functions SDK的3.0.7版本。
答案 2 :(得分:4)
在local.settings.json文件中添加类似字符串的数组:
"myArray": "[
{
\"key1\": \"value1\",
\"key2\": \"value2\"
},
{
\"key1\": \"value3\",
\"key2\": \"value4\"
}
]"
然后在代码中反序列化,如下所示:
string value = Environment.GetEnvironmentVariable("myArray");
objList = JsonConvert.DeserializeObject<List<object>>(value);
答案 3 :(得分:1)
可以在local.settings.json文件中使用数组吗?如果他们可以,那么正确的格式是什么?
目前local.settings.json中似乎不支持 arrarys 。
据我所知,值集合应该是 Dictionary ,如果它包含任何非字符串值,则会导致Azure函数无法读取值local.settings.json
根据我的测试,如果它包含它将返回 null 值
"myArray": [
{
"key1": "value1",
"key2": "value2"
},
{
"key1": "value3",
"key2": "value4"
}
]
答案 4 :(得分:0)
我找到了一个无需复杂的解决方案,您可以简单地如下创建一个数组,该数组可以在Azure Functions中的local.settings.json文件中完美运行-
"myArray": "[\"Value1\",\"Value2\"]"