Is there a way I can automatically add comments to the serialised output from Json.NET?
Ideally, I\'d imagine it\'s something similar to the following:
pub
Well there is something one can do in order to add a comment to the output, but I would not do it except out of truly desperation.
You can write a custom Converter:
public class JsonCommentConverter : JsonConverter
{
private readonly string _comment;
public JsonCommentConverter(string comment)
{
_comment = comment;
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteValue(value);
writer.WriteComment(_comment); // append comment
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue,
JsonSerializer serializer)
{
throw new NotImplementedException();
}
public override bool CanConvert(Type objectType) => true;
public override bool CanRead => false;
}
and use it in your classes as:
public class Person
{
[JsonConverter(typeof(JsonCommentConverter), "Name of the person")]
public string Name { get; set; }
[JsonConverter(typeof(JsonCommentConverter), "Age of the person")]
public int Age { get; set; }
}
Serializing your class
var person = new Person { Name = "Jack", Age = 22 };
var personAsJson = JsonConvert.SerializeObject(person, Formatting.Indented);
will create the following output:
{
"Name": "Jack"/*Name of the person*/,
"Age": 22/*Age of the person*/
}
Json.net will convert back this string into a Person
class without a problem.