如何添加评论到Json.NET输出?
有没有一种方法可以自动将注释添加到JSON.Net的序列化输出中?
理想情况下,我会想象它是类似于以下内容:
public class MyClass
{
[JsonComment("My documentation string")]
public string MyString { get; set; }
}
或者(如果可以避免注释,则更好):
public class MyClass
{
/// <summary>
/// My documentation string
/// </summary>
public string MyString { get; set; }
}
这会产生:
{
//My documentation string
"MyString": "Test"
}
我问的原因是我们使用Json.NET来序列化一个配置文件,稍后可以用手改变它。 我想在我的C#配置类中包含文档,并将其复制到JSON中以帮助稍后可能需要更改文件的人员。
更新 :正如RoToRa指出的那样,JSON规范在技术上并不允许注释(请参阅http://www.json.org上方便的语法图)。 但是,Json.NET网站上的功能表包括:
支持阅读和写作评论
和Newtonsoft.Json.JsonTextWriter.WriteComment(string)
存在,它不输出注释。 我对创建评论的方式感兴趣,而不是直接使用JsonTextWriter
。
Json.NET JsonSerializer在序列化时不会自动输出注释。 您需要手动编写JSON,如果需要评论,可以使用JsonTextWriter或LINQ to JSON
问题是作为文件格式的JSON不支持注释。 你可以做的一件事 - 如果阅读JSON文件的应用程序允许它 - 就是使用附加属性作为注释,如在这个问题中所建议的那样:可以在JSON中使用注释吗?
正如@RoToRa所说的,JSON不允许评论。
如果您仍然需要注释,并且想要输出正确的JSON,则可以通过更改数据布局来使实际JSON数据的注释成为部分。 例如:
{
"MyString": {
"doc": "My documentation string",
"value": "Test"
}
}
链接地址: http://www.djcxy.com/p/3403.html