我有以下代码:
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";但是它会在第二行停止,比如如果有返回-它不会在文本框中写1。我做错了什么?
这里是用结构重写的:http://pastebin.com/xZAhjU8w,谢谢。
编辑:一个用过的尝试捕获,它的例外是:
Newtonsoft.Json.JsonSerializationException:完成反序列化对象后在JSON中找到的其他文本。在Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader阅读器,c:\Temp\Json\Working\Newtonsoft.Json\Src\Newtonsoft.Json\Serialization\JsonSerializerInternalReader.cs:line 177中的objectType类型,布尔checkAdditionalContent(在Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader阅读器上),在c:\Temp\Json\Working\Newtonsoft.Json\Src\Newtonsoft.Json\JsonSerializer.cs:line 711中,在Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader阅读器中输入objectType),在c:\Temp\Json\Working\Newtonsoft.Json\Src\Newtonsoft.Json\JsonSerializer.cs:line 663中,键入Newtonsoft.Json.JsonConvert.DeserializeObject(String值,键入,c:\Temp\Json\Working\Newtonsoft.Json\Src\Newtonsoft.Json\JsonConvert.cs:line 797 at Newtonsoft.Json.JsonConvert.DeserializeObjectT in c:\Temp\Json\Working\Newtonsoft.Json\Src\Newtonsoft.Json\JsonConvert.cs:line 757 at Newtonsoft.Json.JsonConvert.DeserializeObjectT in c:\Temp\Json\Working\Newtonsoft.Json\Src\Newtonsoft.Json\JsonConvert.cs:line 694 at oddsreader.Form1.Form1_Load(对象发送方,(c:\ EventArgs \zuz\EventArgs\Visual 692中)
当我尝试一些在线的json验证器时,它们返回的字符串是有效的。它会有什么问题?
EDIT2:我可能完全错了。所以我想问一个更简单的问题。我怎么能做一个“赔率”数组,然后预测它的子数组呢?通向赔率的道路是:“d”“后退”“赔率”。我还没有找到一个模式超过2级数组的示例代码。
发布于 2013-08-03 15:35:06
您的问题不在于字符串,而在于转换为“DataSet”。这对我来说很好:
static void Main(string[] args)
{
WebClient client = new WebClient();
string code = client.DownloadString("http://oddsportal.com/feed/prematch/1-1-hSpbs4Cd-1-2.dat");
client.Dispose();
code = code.Replace("-|-", string.Empty);
JObject json = JsonConvert.DeserializeObject<JObject>(code);
int one = (int)json["d"]["bt"];
Debug.Assert(one == 1);
}发布于 2013-08-03 08:30:58
似乎JsonConvert无法对传入的参数执行DeserializeObject。
也就是说,(3, code.Length - 6)可能不会为您提供一个有效的json字符串,因此JsonConvert无法转换它。
可能会抛出一个异常,但您没有捕捉到它,因此,它显示了类似于“返回”的行为。
https://stackoverflow.com/questions/18029758
复制相似问题