反序列化具有以数字开头的某个属性名称的json

jay*_*asa 14 c# json.net

JSON数据看起来像这样

[
    {
        "market_id": "21",
        "coin": "DarkCoin",
        "code": "DRK",
        "exchange": "BTC",
        "last_price": "0.01777975",
        "yesterday_price": "0.01770278",
        "change": "+0.43",
        "24hhigh": "0.01800280",
        "24hlow": "0.01752015",
        "24hvol": "404.202",
        "top_bid": "0.01777975",
        "top_ask": "0.01790000"
    }
]
Run Code Online (Sandbox Code Playgroud)

注意这里有3个属性24high,24hhlow和24hvol你如何为它做一个类.顺便提一下,我需要所有这些属性,而不仅仅是我提到的那三个属性.

Bor*_*lov 21

您应该使用JSON.NET或类似的库来提供一些更高级的反序列化选项.使用JSON.NET,您只需添加JsonProperty属性并指定出现在结果JSON中的自定义名称.这是一个例子:

   public class MyClass
   {
        [JsonProperty(PropertyName = "24hhigh")]
        public string Highest { get; set; }
        ...
Run Code Online (Sandbox Code Playgroud)

现在反序列化:

    string jsonData = ...    
    MyClass deserializedMyClass = JsonConvert.DeserializeObject<MyClass>(jsonData);
Run Code Online (Sandbox Code Playgroud)

  • 要反序列化,他需要“JsonConvert.Deserialize&lt;List&lt;MyClass&gt;&gt;(jsonData)”,因为 JSON 表示一个数组,而不是单个对象。 (2认同)