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



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"
    }
]

注意这三个属性24high, 24hlow和24hvol你怎么能给他们上课呢。顺便说一下,我需要所有这些属性,而不仅仅是我提到的这三个属性

您应该使用JSON。NET或类似的库,提供一些更高级的反序列化选项。与JSON。NET所需要的就是添加JsonProperty属性并指定它的自定义名称,该名称出现在结果JSON中。下面是示例:

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

现在反序列化:

    string jsonData = ...    
    MyClass deserializedMyClass = JsonConvert.DeserializeObject<MyClass>(jsonData);

对于。net Core 3.0及更高版本,您现在可以使用System.Text.Json命名空间。如果你使用这个:

public class MyClass
{
    ...
    [JsonPropertyName("24hhigh")]
    public string twentyFourhhigh { get; set; }
    ...
}

您可以使用JsonPropertyName Attribute

相关内容

  • 没有找到相关文章

最新更新