1
public class Student
{
[JsonProperty("student_name")]
public string Name { get; set; }
}
我用[JsonProperty("student_name")]
反序列化。第三部分JSON,之後Json.Net禁用JsonProperty時SerializeObject
我怎麼能得到{"Name":"test"}
而不是{"student_name":"test"}
當呼叫
string json = JsonConvert.SerializeObject(student);
意味着如何programmly禁用JsonProperty
?在2013年12月3日
UPDATE:
寫CustomContractResolver解決問題
public class JsonCustomContractResolver : DefaultContractResolver
{
protected override JsonProperty CreateProperty(MemberInfo member,
MemberSerialization memberSerialization)
{
var res = base.CreateProperty(member, memberSerialization);
var attrs = member
.GetCustomAttributes(typeof(JsonPropertyAttribute), true);
if (attrs.Any())
{
if (res.PropertyName != null)
{
//UnderlyingName overwrite attribute name
res.PropertyName = res.UnderlyingName;
}
}
return res;
}
}
謝謝,這個想法是工作,但只爲「學生」的對象,不是一般的爲所有對象定製轉換器。 – tuanzhang