按原样定义 JSON,为了将其反序列化为对象,我需要在我的类上创建一个名为“事件”的属性,这是一个 C# 关键字。有没有其他方法可以告诉它字段名称是什么?
这是一个 JSON 示例:
{ event: 123 data: {"data":"0D0401","ttl":"60","published_at":"2014-04-16T18:04:42.446Z","id":"48ff6f065067555031192387"} }
以下是我的类,由于关键字而无法编译:
public class Event
{
public int event { get; set; }
public EventDetail data { get; set; }
}
public class EventDetail
{
public string data { get; set; }
public string ttl { get; set; }
public DateTime published_at { get; set; }
public string id { get; set; }
}
最佳答案
改变
public class Event
{
public int event { get; set; }
public EventDetail data { get; set; }
}
对此
public class Event
{
public int @event { get; set; }
public EventDetail data { get; set; }
}
此技巧展示了在 C# 中转义所涉及的怪癖:
- 字 rune 字转义:
e.g. '\'', '\n', '\u20AC' (the Euro € currency sign), '\x9'
(相当于\t)) - 文字字符串转义:
e.g. "...\t...\u0040...\U000000041...\x9..."
- 逐字字符串转义:
e.g. @"...""..."
- string.Format 转义:
e.g. "...{{...}}..."
- 关键字转义:
e.g. @if (for if as identifier)
- 标识符转义:
e.g. i\u0064 (for id)
关于c# - 要反序列化的对象具有 C# 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23116995/