如何添加评论到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

上一篇: How do I add comments to Json.NET output?

下一篇: Simplifying JSON structure