Kann mir jemand mit dem JSON-Serializer helfen?
Also wie ich aus dem splittedData array die relevanten Daten rausfische und die zu einzelnen strings mit passenden Werten machen kann? Stehe da trotz Doku ziemlich auf dem Schlauch… Und mit dem StringBuilder sehe ich auch nur Probleme, da dieser ja nicht unterscheiden kann, was Wert und was string-name ist… bzw. der StringArrayBuilder dann nicht das genaue Gegenteil von dem Splitter macht und doch wieder alles zusammenfügt…
Die Klassenbibliothek (.dll) von Json (ich hab die aus dem Ordner “portable” genommen) habe ich eingebunden und die using-sache geschrieben - Kann mir hier jemand schreiben, wie ich aus dem Array dann einzelne Strings mache? - Damit wäre dieses Thema auch komplett gelöst und ich könnte selbst weiter an meiner UI arbeiten…
*** Edit ***
so - Kleine Vorbereitung zur Weiterprogrammierung:
Aktueller Stand:
[CSHARP]/* Programmierer: ******
*/
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 System.Diagnostics;
using System.IO;
using Newtonsoft.Json;
namespace CEX.io_Windows2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string APIdata = “”;
string[] splittedData;
private void refresh_Tick(object sender, EventArgs e)
{
APIdata = new System.Net.WebClient().DownloadString(“https://cex.io/api/ticker/GHS/BTC”);
splittedData = APIdata.Split(',');
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(APIdata, "Here's RAW data *hrhrhr*", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void Form1_Load_1(object sender, EventArgs e)
{
APIdata = new System.Net.WebClient().DownloadString("https://cex.io/api/ticker/GHS/BTC");
refresh.Enabled = true;
}
/* public static string ConvertStringArrayToString(string[] array)
{
StringBuilder builder = new StringBuilder();
foreach (string value in splittedData)
{
builder.Append(value);
}
return builder.ToString();
}*/
}
}
// string html = new System.Net.WebClient().DownloadString(“http://twitter.com”);
/*WebRequest wrGETURL = WebRequest.Create(“https://cex.io/api/ticker/GHS/BTC”);
Stream objStream = wrGETURL.GetResponse().GetResponseStream();
using (StreamReader objReader = new StreamReader(objStream))
{
string sLine = String.Empty;
while ((sLine = objReader.ReadLine()) != null)
{
Debug.WriteLine(sLine);
APIdata = sLine;
}
} */
[/CSHARP]
Ich notier mal, was im Array splittedData jetzt (nach der Split-Methode) gespeichert sein müsste: (mit dem Eingabestring {“timestamp”:“1386612763”,“low”:“0.06810001”,“high”:“0.07803”,“last”:“0.07199999”,“volume”:“21957.09521137”,“bid”:“0.071999980000000005”,“ask”:“0.07199999” })
[ol]
[li]{“timestamp”:“1386612763”
[/li][li]“low”:“0.06810001”
[/li][li]“high”:“0.07803”
[/li][li]“last”:“0.07199999”
[/li][li]“volume”:“21957.09521137”
[/li][li]“bid”:“0.071999980000000005”
[/li][li]“ask”:“0.07199999” }
[/li][/ol]
Was ich jetzt noch machen müsste:
[ul]
[li]Löschen einiger Zeichen aus den Array-Werten ( {, " und : )
[/li][li]Aufteilen des Arrays in Einzelwerte für Buchstaben und Ziffernfolgen, wobei die Reihenfolge nicht verloren gehen darf.
[/li][li]Dem JSON-Serializer irgendwie sagen, dass Buchstabenfolgen einen string-namen darstellen und die unmittelbar darauf folgenden Ziffernfolgen die jeweiligen Werte eben dieser strings.
[/li][/ul]
Wie stelle ich das an? - Übernimmt der Serializer mehr als das, was ich oben geschrieben habe, also übernimmt er schon das Löschen bestimmter Zeichen und das Aufteilen in strings? -