反序列化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
是混乱,但一切由你。
感谢您的回复!正是我在找什么。 您可以请告诉我您认为这是对这类数据进行计算的最佳方式吗? – Revengeic3