繁体   English   中英

Json 带正斜杠的字段名称

[英]Json field name with forward slash

我必须将 json 反序列化为 C# 类,但许多 json 字段名称中都有正斜杠。

我已经搜索了这个网站,看看是否有其他人问过类似的问题,但没有出现任何问题。

json:

  {
    "start": "2019-10-24T10:37:27.590Z",
    "end": "2019-10-24T11:00:00.000Z",
    "requests/duration": {
      "avg": 3819.55
    }
  }

c#

class Metrics
{
   public DateTime start = DateTme.MinValue;
   public DateTime end = DateTme.MinValue;
   public RequestsDuration requestsduration = null;
}

class RequestsDuration
{
   public double avg = 0.0;
}

...
Metrics data = JsonConvert.DeserializeObject<Metrics>(json);

json 中的“请求/持续时间”不会反序列化为指标 class。

我可以在反序列化之前这样做:

json = json.Replace("requests/duration","requestsduration")

但我想知道是否有更清洁的方法。

json.net 是否提供了一种方法来处理 json 字段中的特殊字符?

您可以使用 JsonProperty 属性自定义 json 的字段名称。 对于指标 class,您可以执行以下操作:

class Metrics
{
   public DateTime start = DateTme.MinValue;
   public DateTime end = DateTme.MinValue;
   [JsonProperty("requests/duration")]
   public RequestsDuration requestsduration = null;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM