Ich versuche, Blockchain JSON Api Antwort richtig zu entsprechen, aber es scheint, wie ich es einfach nicht tun kann. Blockchain API Response sieht so aus:C# Regex passend JSON API Antwort richtig
{
"addresses": [
{
"balance": 1400938800,
"address": "1Q1AtvCyKhtveGm3187mgNRh5YcukUWjQC",
"label": "SMS Deposits",
"total_received": 5954572400
},
{
"balance": 79434360,
"address": "1A8JiWcwvpY7tAopUkSnGuEYHmzGYfZPiq",
"label": "My Wallet",
"total_received": 453300048335
},
{
"balance": 0,
"address": "17p49XUC2fw4Fn53WjZqYAm4APKqhNPEkY",
"total_received": 0
}
]
}
Grundsätzlich, wie Sie sehen können. Für jede Adresse ist jede Zeile, auf C# ReadToEnd(), es mir versagt. Aber im Grunde versuche ich das, wenn es Label SMS Einzahlungen Beispiel gibt, dann von "dieser Zeile" wird es diese Adresse nehmen, nirgendwo sonst. Beispiel: label ist Peter, dann nimmt es die Adresse nur von der Peter-Linie, nicht von einer anderen Linie. Wie könnte ich das tun? Hier ist auch mein Code:
listAddresses.Method = "GET";
HttpWebResponse listAddressesResp = (HttpWebResponse)listAddresses.GetResponse();
StreamReader listAddressesSR = new StreamReader(listAddressesResp.GetResponseStream());
var resultListAddresses = listAddressesSR.ReadToEnd();
if (resultListAddresses.Contains(name))
{
Regex SuiWillThatWork = new Regex("\"address\":\"[A-Za-z0-9]+");
var TestingVol2 = SuiWillThatWork.Match(resultListAddresses).Value;
TestingVol2 = TestingVol2.Replace("\"address\":\"", "");
address = TestingVol2;
MessageBox.Show(resultListAddresses);
MessageBox.Show(address);
}
XY Problem? Anstatt dies zu hacken, gehen Sie auf ['Newtonsoft.Json'] (https://www.nuget.org/packages/Newtonsoft.Json/) und behandeln Sie JSON so, wie es behandelt werden sollte. –
Ja, in Ordnung. Wenn ich es richtig behandle, dann immer noch .. Wie könnte ich diese Information aus dieser "Zeile/Block" regexen – SuiCide
Wenn Sie es wie JSON behandeln, gibt es absolut keinen Grund, RegEx weiter zu verwenden. Und selbst wenn Sie es mit Regex arbeiten würden, 1) wäre es fragil und würde wahrscheinlich nicht unter allen Umständen funktionieren. 2) Zerbrechlich ist besonders wahr, sollte der Hersteller die API/Antwort ändern, 3) es gibt bereits einen Parser-- benutze es. –