2017-09-04 3 views
1

Guten Abend,Deserialize JSON-Array zu füllen und machen Berechnungen auf Werten

Ich arbeite an einer Anwendung, die retrive einig JSON-Wert (ex 0,00004582) von einer URL (dies zum Beispiel https://bittrex.com/Api/v2.0/pub/market/GetTicks?marketName=BTC-NEO&tickInterval=day) mit Microsoft Visual C# 2017.

Ich kann die URL lesen, und ich eine Klasse einrichten, um zu definieren, wie der JSON-Wert gelesen werden muss, schlägt meine Logik vor, dass ich sie in Variablen speichern und dann mit berechnen sie, aber das Problem ist, dass ich nicht das Programm die Werte richtig lesen lassen kann, und ich weiß nicht, wie man die Gegenstände benutzt, um meine Berechnungen zu machen.

Dies ist der Code der Data.cs Klasse

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; } 
    } 
} 

Zwar ist dies der Code aus dem Form1 ist

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); 
      } 
     } 
    } 
} 

Was kann ich tun? Kannst du mich auf eine gute Ressource hinweisen, um zu verstehen, was zu tun ist?

Vielen Dank.

Antwort

0

für die Serialisierung Ihre Klasse etwas nicht stimmt, sollte es so aussehen:

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; } 
} 

Dann sollte die Linie für die Serialisierung lesen:

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

dann die Ergebnisse iterieren es aussehen würde, dies:

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

Ausgang:

0,000264
0,0001887
0,000227
0,00022576
0,00025723

Zwar möchten Sie vielleicht einige der Klassen umbenennen, result in results.result verwirrend ist, aber das ist bis zu Ihnen.

+0

Danke für die Antwort! Genau das, was ich gesucht habe. Können Sie mir bitte sagen, was Sie denken, dass dies der beste Weg ist, um diese Art von Daten zu berechnen? – Revengeic3

Verwandte Themen