反序列化JSON填充阵列,并从URL进行计算的值

问题描述:

大家晚上好,反序列化JSON填充阵列,并从URL进行计算的值

我的工作有一些retrive JSON值的应用程序(例如0.00004582)(此例如https://bittrex.com/Api/v2.0/pub/market/GetTicks?marketName=BTC-NEO&tickInterval=day)与Microsoft Visual C#2017.

我能够读取URL,并且我设置了一个类来定义JSON值是如何读取的,我的逻辑建议我必须将它们存储在变量中,然后使用他们,但问题是我不能让程序正确读取值,并且我不知道如何使用这些对象来进行我的计算。

这是Data.cs的代码

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace WindowsFormsApp3 
{ 
    public class Data 
    { 
     internal IEnumerable<object> data; 

     public double O { get; set; } 
     public double H { get; set; } 
     public double L { get; set; } 
     public double C { get; set; } 
     public double V { get; set; } 
     public string T { get; set; } 
     public double BV { get; set; } 
    } 

    public class RootObject 
    { 
     public bool success { get; set; } 
     public string message { get; set; } 
     public List<Result> result { get; set; } 
    } 
} 

虽然这是从Form1的

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.Net; 
using Newtonsoft.Json; 

namespace WindowsFormsApp3 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      var client = new WebClient(); 
      var text = client.DownloadString("https://bittrex.com/Api/v2.0/pub/market/GetTicks?marketName=BTC-NEO&tickInterval=day"); 
      var result = JsonConvert.DeserializeObject<Data>(text); 
      foreach (var data in result.C) 
      { 
       Console.WriteLine(result); 
      } 
     } 
    } 
} 

代码我能做些什么?你能否指点我一些很好的资源来理解要做什么?

非常感谢。

您的序列化类是稍有不当,就应该看起来更像是这样的:

public class Result 
{ 
    public double O { get; set; } 
    public double H { get; set; } 
    public double L { get; set; } 
    public double C { get; set; } 
    public double V { get; set; } 
    public string T { get; set; } 
    public double BV { get; set; } 
} 

public class RootObject 
{ 
    public bool success { get; set; } 
    public string message { get; set; } 
    public List<Result> result { get; set; } 
} 

然后序列化该行应为:

var results = JsonConvert.DeserializeObject<RootObject>(text); 

然后遍历结果它会是什么样子这个:

foreach (var result in results.result) 
{ 
    Console.WriteLine(result.C); 
} 

输出:

0.000264
0.0001887
0.000227
0.00022576
0.00025723

你可能要重新命名一些类不可否认,result in results.result是混乱,但一切由你。

+0

感谢您的回复!正是我在找什么。 您可以请告诉我您认为这是对这类数据进行计算的最佳方式吗? – Revengeic3