JSON.NET自定义属性序列化
我有一节课看起来像下面JSON.NET自定义属性序列化,json,json.net,serialization,Json,Json.net,Serialization,我有一节课看起来像下面 public class Sample { public string schema { get; set; } public string version { get; set; } } 我要找的输出是 { $schema : "some schema", version : "1.1.1.1.1" } 我使用下面的代码来序列化 公共类SchemaSerializer:JsonConverter { 公共重写void Wri
public class Sample {
public string schema { get; set; }
public string version { get; set; }
}
我要找的输出是
{
$schema : "some schema",
version : "1.1.1.1.1"
}
我使用下面的代码来序列化
公共类SchemaSerializer:JsonConverter
{
公共重写void WriteJson(JsonWriter编写器、对象值、JsonSerializer序列化器)
{
var schema=作为字符串的值;
writer.WriteStartObject();
writer.WritePropertyName(“$schema”);
serializer.Serialize(writer,schema);
writer.WriteEndObject();
}
公共重写对象ReadJson(JsonReader阅读器,类型objectType,对象existingValue,JsonSerializer序列化程序)
{
JObject jsonObject=JObject.Load(读卡器);
var properties=jsonObject.properties().ToList();
返回新模式
{
SchemaName=properties[0]。名称。替换(“$”,“”),
Value=(字符串)属性[0]。Value
};
}
公共覆盖布尔CanConvert(类型objectType)
{
返回typeof(Schema).IsAssignableFrom(objectType);
}
}
然而,这将产生以下输出
{
schema : {$schema : "some schema" } ,
version : "1.1.1.1.1"
}
如何解决这个问题 JsonProperty使用字符串属性名解决此问题
[JsonProperty(PropertyName = "$schema")]
public string Schema { get; set; }