【问题标题】:How to parse this specific JSON to String? [closed]如何将此特定的 JSON 解析为字符串? [关闭]
【发布时间】:2022-01-20 00:46:47
【问题描述】:

我已经尝试了所有可以尝试使用 Newtonsoft.JSON 和 System.Web.Script.Serialization 解析这个 JSON 的解决方案,但无论我使用什么方法,我都会出错。

我正在尝试使用 https://api.kucoin.com/api/v1/market/stats?symbol=BTC-USDT API,并尝试从中解析值,以便稍后引用它们。

很难为此显示我的代码,因为我尝试了很多不同的方法,我不完全知道哪里出了问题。我认为这可能是由于 API 本身的一些奇怪的格式,但我不太确定我会如何处理。我该怎么做?

代码示例:https://www.toptal.com/developers/hastebin/raw/uxomitoweb

【问题讨论】:

  • 好吧,您可以从显示您尝试过的代码以及每次收到的错误消息开始。
  • 对我来说看起来不像任何奇怪的格式。 Notepad++ 中的 JSON Viewer 插件没有问题。
  • 一个简单的 JSON.parse 的 JSFiddle 有效,所以看起来 JSON 是有效的。
  • JSON 的原生形式是文本 AKA 字符串。所以,没有什么可解析的。显示您尝试过的something,以便我们可以处理一些事情。并添加实际代码,而不是添加一些带有代码的网站的链接。
  • 好吧,我添加了一些我尝试做的示例代码(我已经从本网站上的其他帮助中尝试了它的许多变体。)我的意思是这两个奇怪的格式} } 最后可能会混淆反序列化器?不确定。我是 C# JSON 解析的新手。

标签: c# json parsing


【解决方案1】:

试试这个。它已在 Visual Studio 中测试并正常工作

using (var client = new HttpClient())
{
var contentType = new MediaTypeWithQualityHeaderValue("application/json");

var baseAddress =  @"https://api.kucoin.com";
var api = @"api/v1/market/stats?symbol=BTC-USDT";

client.BaseAddress = new Uri(baseAddress);
client.DefaultRequestHeaders.Accept.Add(contentType);
            
var response = await client.GetAsync(api);

  if (response.IsSuccessStatusCode)
  {
   var json = await response.Content.ReadAsStringAsync();
   var result = JsonConvert.DeserializeObject<Data>(json);
  }

}

    public partial class Data
    {
        [JsonProperty("code")]
            public long Code { get; set; }

        [JsonProperty("data")]
        public DataClass DataData { get; set; }
    }

    public partial class DataClass
    {
        [JsonProperty("time")]
        public long Time { get; set; }

        [JsonProperty("symbol")]
        public string Symbol { get; set; }

        [JsonProperty("buy")]
        public string Buy { get; set; }

        [JsonProperty("sell")]
        public string Sell { get; set; }

        [JsonProperty("changeRate")]
        public string ChangeRate { get; set; }

        [JsonProperty("changePrice")]
        public string ChangePrice { get; set; }

        [JsonProperty("high")]
        public string High { get; set; }

        [JsonProperty("low")]
        
        public long Low { get; set; }

        [JsonProperty("vol")]
        public string Vol { get; set; }

        [JsonProperty("volValue")]
        public string VolValue { get; set; }

        [JsonProperty("last")]
        public string Last { get; set; }

        [JsonProperty("averagePrice")]
        public string AveragePrice { get; set; }

        [JsonProperty("takerFeeRate")]
        public string TakerFeeRate { get; set; }

        [JsonProperty("makerFeeRate")]
        public string MakerFeeRate { get; set; }

        [JsonProperty("takerCoefficient")]
    
        public long TakerCoefficient { get; set; }

        [JsonProperty("makerCoefficient")]
        
        public long MakerCoefficient { get; set; }
    }
````

【讨论】:

  • 这对我有用,谢谢。这比我作为一个初学者程序员似乎能够处理它更复杂。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
  • 1970-01-01
  • 2014-01-04
  • 2021-02-08
  • 1970-01-01
  • 2012-06-27
相关资源
最近更新 更多