0

私は次のコードを持っています:

string code = client.DownloadString("http://oddsportal.com/feed/prematch/1-1-hSpbs4Cd-1-2.dat");
DataSet data = JsonConvert.DeserializeObject<DataSet>(code.Substring(3, code.Length - 6));
textBox1.Text += "1";

しかし、リターンがあった場合のように2行目で停止します-テキストボックスに1を書き込みません。私は何を間違っていますか?

ここでは、構造で書き直されています: http://pastebin.com/xZAhjU8w ありがとう。

編集: A は try-catch を使用し、その例外は次のとおりです。

Newtonsoft.Json.JsonSerializationException: オブジェクトの逆シリアル化が完了した後に、JSON 文字列に追加のテキストが見つかりました。c:\Temp\Json\Working\Newtonsoft.Json\Src\Newtonsoft.Json\Serialization\JsonSerializerInternalReader.cs:Newtonsoft の行 177 の Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (JsonReader リーダー、タイプ objectType、ブール値 checkAdditionalContent) で.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) c:\Temp\Json\Working\Newtonsoft.Json\Src\Newtonsoft.Json\JsonSerializer.cs: Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader リーダーの 711 行目c:\Temp\Json\Working\Newtonsoft.Json\Src\Newtonsoft.Json\JsonSerializer.cs: c:\Temp\Json\Working\Newtonsoft.Json\Src\Newtonsoft.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings) の 663 行目:

いくつかのオンライン json バリデーターを試したところ、文字列が有効であることが返されました。何が問題なのですか?

EDIT2:私は完全に間違っていたかもしれません。そこで、もっと簡単な質問をします。「オッズ」配列の foreach を実行してから、そのサブ配列の foreach を実行するにはどうすればよいですか? オッズへのパスは ["d"]["oddsdata"]["戻る"]["E-1-2-0-0-0"]["オッズ"] です。2 レベル配列以外のモードのサンプル コードは見つかりませんでした。

4

2 に答える 2

0

渡したパラメータでJsonConvert実行できなかったようです。DeserializeObject

つまり、(3, code.Length - 6)おそらく有効な json 文字列が得られないため、JsonConvert はそれを変換できません。

おそらく例外がスローされましたが、それをキャッチできなかったため、「リターン」のような動作を示しました。

于 2013-08-03T08:30:58.623 に答える