Blockchain JSON Apiの応答が正しい方法で一致しようとしていますが、できないようです。ブロックチェーンのAPIレスポンスは次のようになります。C#JSON API応答が正しく一致する正規表現
{
"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
}
]
}
基本的にはわかります。各アドレスは、C#ReadToEnd()上の各行であり、それは私を台無しにします。しかし、基本的に私はそれを試しています、もしSMSの預金の例があれば、 "その行"からそのアドレスを取るでしょう。例:labelはPeterで、それ以外の行ではなく、Peter行からのみアドレスを取得します。どうすればいい?私のコードもここにあります:
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問題?これを動かすためにハッキングするのではなく、['Newtonsoft.Json'](https://www.nuget.org/packages/Newtonsoft.Json/)に行き、JSONを扱うべきだとみなしてください。 –
ええ、大丈夫です。その行/ブロックからその情報を再正規化する方法 – SuiCide
JSONのように扱う場合、RegExの使用を続ける理由は全くありません。そして、正規表現を使って作業しても、1)壊れやすく、おそらくすべての環境で動作しません。2)ベンダーがAPI /レスポンスを変更した場合は特に脆いです。3)パーサが既にあります。これを使って。 –