簡體   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