要反序列化的对象有一个 C# 关键字

tel*_*ird 2 c# serialization json object keyword

按照原样定义 JSON,为了将其反序列化为对象,我需要在我的类上创建一个名为“event”的属性,这是一个 C# 关键字。有没有另一种方法可以告诉它字段名称是什么?

下面是一个 JSON 示例:

{ event: 123 data: {"data":"0D0401","ttl":"60","published_at":"2014-04-16T18:04:42.446Z","id":"48ff6f06506755503119 }2387"

以下是由于关键字而无法编译的类:

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; }
}
Run Code Online (Sandbox Code Playgroud)

123*_*9 0 5

改变

public class Event
{
    public int event { get; set; }
    public EventDetail data { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

对此

public class Event
{
    public int @event { get; set; }
    public EventDetail data { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这个技巧展示了在 C# 中与转义相关的怪癖:

  • 字符文字转义

例如 '\''、'\n'、'\u20AC'(欧元 € 货币符号)、'\x9'

(相当于 \t)) -文字字符串转义:

例如“...\t...\u0040...\U000000041...\x9...”

  • 逐字字符串转义:

例如@"...""..."

  • string.Format 转义:

例如“...{{...}}...”

  • 关键字转义:

例如@if(如果作为标识符)

  • 标识符转义:

例如 i\u0064(用于 ID)