【发布时间】:2018-01-24 02:54:31
【问题描述】:
将 Azure 函数与 Blob 触发器结合使用。如何读取 JSON 文件。在示例中,它仅读取长度。我应该使用 Stream 还是 CloudBlockBlob ?我需要使用 c# 对 json 进行反序列化。
【问题讨论】:
标签: azure-functions
将 Azure 函数与 Blob 触发器结合使用。如何读取 JSON 文件。在示例中,它仅读取长度。我应该使用 Stream 还是 CloudBlockBlob ?我需要使用 c# 对 json 进行反序列化。
【问题讨论】:
标签: azure-functions
类似下面的方法可以解决问题。
[FunctionName("BlobTriggerCSharp")]
public static void Run([BlobTrigger("demo/{name}")] Stream stream, string name, TraceWriter log)
{
var serializer = new JsonSerializer();
using (var sr = new StreamReader(stream))
using (var jsonTextReader = new JsonTextReader(sr))
{
var person = (Person)serializer.Deserialize(jsonTextReader, typeof(Person));
// Do something with person.
}
}
有关更多详细信息,请参阅 Json.Net 文档 - https://www.newtonsoft.com/json/help/html/DeserializeWithJsonSerializerFromFile.htm
【讨论】:
您可以绑定为字符串,然后SDK会为您读取内容。然后您可以转换为 JSON。
[FunctionName("BlobTriggerCSharp")]
public static void Run([BlobTrigger("demo/{name}")] string contents)
{
var person = JsonConvert.DeserializeObject<Person>(contents);
}
您还可以绑定到 byte[] 以获取字节内容。
【讨论】:
byte[] 或 string 的块更有效