c# - 如何向 Json.NET 输出添加注释?

标签 c# json 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 site 上的功能表包括:

Supports reading and writing comments

Newtonsoft.Json.JsonTextWriter.WriteComment(string) 存在,它确实输出评论。我对创建评论的简洁方式感兴趣,而不是直接使用 JsonTextWriter

最佳答案

Json.NET JsonSerializer 在序列化时不会自动输出注释。您需要手动编写 JSON,如果您需要评论,可以使用 JsonTextWriter 或 LINQ to JSON

关于c# - 如何向 Json.NET 输出添加注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9495718/

相关文章:

c# - WriteAsync 超时

c# - 无法从传输连接读取数据?

c# - 从 CodeBehind 调用 JavaScript 函数

javascript - 既然 Express 不带有主体解析器,我如何使用外部中间件解析 JSON?

android - 如何在android中解析以下格式的json响应

json.net - 当我调用 JsonConvert.DeserializeObject() 时,为什么将 JArray 分配给 var 会失败?

c# - 以今天的日期运行函数

php - 使用 PHP 从 URL 解析 JSON

c# - 当目标是对象时,JSON.net 将 json 数组序列化为 JArray。我该如何改变它?

c# - 使用 JSON.net 将 JSON 解析为匿名对象[]