当我尝试将数组作为local.settings.json文件中的Values之一插入时:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"AzureWebJobsDashboard": "",
"myArray": [
{
"key1": "value1",
"key2": "value2"
},
{
"key1": "value3",
"key2": "value4"
}
]
},
"ConnectionStrings": {
"SQLConnectionString": "myConnectionString"
}
}
Run Code Online (Sandbox Code Playgroud)
我开始例外。可以在local.settings.json文件中使用数组吗?如果可以的话,正确的格式是什么?
小智 9
如果您尝试在 local.settings.json 文件/环境变量中设置数组,则可以指定以下格式:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"MyArray:0:Name": "Test",
"MyArray:1:Name": "Test2",
"MyArray:2:Name": "Test3"
}
}
Run Code Online (Sandbox Code Playgroud)
在 Startup.cs 中,您可以使用以下语法来绑定数组
var settings = new List<MyArrayType>();
configuration.GetSection("MyArray").Bind(settings);
Run Code Online (Sandbox Code Playgroud)
这是使用 .NET 6.0 和 Azure Functions v4 的示例
您需要使用数组索引器格式。
例如
"myArray:[0]:key1": "value1",
"myArray:[0]:key2": "value2",
"myArray:[1]:key1": "value3",
"myArray:[1]:key2": "value4"
Run Code Online (Sandbox Code Playgroud)
在local.settings.json文件中添加类似字符串的数组:
"myArray": "[
{
\"key1\": \"value1\",
\"key2\": \"value2\"
},
{
\"key1\": \"value3\",
\"key2\": \"value4\"
}
]"
Run Code Online (Sandbox Code Playgroud)
然后在您的代码中反序列化它,如下所示:
string value = Environment.GetEnvironmentVariable("myArray");
objList = JsonConvert.DeserializeObject<List<object>>(value);
Run Code Online (Sandbox Code Playgroud)
这是可能的!
我的本地设置文件如下所示:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true"
},
"CustomArray": [
{
"CustomProp1": "foo0",
"CustomProp2": "bar0"
},
{
"CustomProp1": "foo1",
"CustomProp2": "bar1"
}
]
}
Run Code Online (Sandbox Code Playgroud)
然后,为了在我的 Startup 中解析数组,我有这样的事情:
var settings = new List<CustomSetting>();
config.GetSection("CustomArray").Bind(settings);
Run Code Online (Sandbox Code Playgroud)
...这样CustomSetting的课程在哪里:
public class CustomSetting
{
public string CustomProp1 { get; set; }
public string CustomProp2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我使用的是Microsoft.Extensions.ConfigurationNuget 包的3.1.5版和Microsoft.NET.Sdk.FunctionsAzure Functions SDK 的3.0.7 版。
local.settings.json 文件中可以使用数组吗?如果可以的话,正确的格式是什么?
local.settings.json 目前似乎不支持arrays 。
据我所知 Values 集合应该是一个Dictionary,如果它包含任何非字符串值,它将导致Azure函数无法从 local.settings.json 读取值
根据我的测试,如果包含它将返回null值
"myArray": [
{
"key1": "value1",
"key2": "value2"
},
{
"key1": "value3",
"key2": "value4"
}
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1635 次 |
| 最近记录: |