【发布时间】:2019-04-15 08:29:39
【问题描述】:
我正在使用带有 Azure Function v2 的 YamlDotNet 将 YAML 从 Markdown 文件(托管在 GitHub 上)序列化为 .net 对象。我在尝试反序列化 YAML 字符串时遇到此错误
Expected 'StreamEnd', got 'DocumentStart
我正在使用HttpClient 获取降价文件内容,并通过对https://github.com/martinkearn/Content/raw/fd83bf8218b7c5e01f8b498e8a831bcd3fc3c961/Blogs/Test.md 的GET 请求在响应正文中返回原始降价文件。
我的模特是
public class Article
{
public string Title { get; set; }
public string Author { get; set; }
public List<string> Categories { get; set; }
}
我的 YAML 是
---
title: Test File
author: Martin Kearn
categories:
- Test
- GitHubCMS
- One More Tag
- another tag
---
这是我的代码
// get url from request body
var url = "https://raw.githubusercontent.com/martinkearn/Content/fd83bf8218b7c5e01f8b498e8a831bcd3fc3c961/Blogs/Test.md";
// get raw file and extract YAML
using (var client = new HttpClient())
{
//setup HttpClient
client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Add("User-Agent", "ExtractYAML Function");
//setup httpContent object
var response = await client.GetAsync(url);
string rawFile = await response.Content.ReadAsStringAsync();
using (var r = new StringReader(rawFile))
{
var deserializer = new DeserializerBuilder()
.WithNamingConvention(new CamelCaseNamingConvention())
.Build();
//This line is causing Expected 'StreamEnd', got 'DocumentStart'
var article = deserializer.Deserialize<Article>(r);
}
}
【问题讨论】:
标签: yaml azure-functions yamldotnet