用Ref属性反序列化JSON对象
本文关键字:JSON 对象 反序列化 属性 Ref | 更新日期: 2023-09-27 17:49:38
我正试图反序列化从github webhook发布的推送事件的JSON。
它使用"ref"属性来存储分支信息,但是ref在c#中是一个保留字,所以序列化不能工作。
现在我有
public class PushEvent
{
[JsonProperty("ref")]
public string _ref { get; set; }
public string before { get; set; }
public string after { get; set; }
public bool created { get; set; }
public bool deleted { get; set; }
public bool forced { get; set; }
public object base_ref { get; set; }
public string compare { get; set; }
public Commit[] commits { get; set; }
public Head_Commit head_commit { get; set; }
public Repository repository { get; set; }
public Pusher pusher { get; set; }
public Sender sender { get; set; }
}
but _ref总是被设置为null。作为参考,这里还有一个MVC动作,它将推送的数据写入一个文件——以防万一,这会产生影响
[HttpPost]
public JsonResult PushEvent(PushEvent data)
{
var dataString = JsonConvert.SerializeObject(data);
using(var writer = System.IO.File.CreateText(Server.MapPath("/app_data/" + DateTime.UtcNow.ToString("yyyyMMddhhmmss") + ".json")))
{
writer.Write(dataString);
}
return new JsonResult(){Data="ok"};
}
试试改成:
public class PushEvent
{
public string @ref { get; set; }