首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >json.net DeserializeObject

json.net DeserializeObject
EN

Stack Overflow用户
提问于 2013-08-03 05:46:36
回答 2查看 11.5K关注 0票数 0

我有以下代码:

代码语言:javascript
复制
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级数组的示例代码。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-03 15:35:06

您的问题不在于字符串,而在于转换为“DataSet”。这对我来说很好:

代码语言:javascript
复制
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);
}
票数 1
EN

Stack Overflow用户

发布于 2013-08-03 08:30:58

似乎JsonConvert无法对传入的参数执行DeserializeObject

也就是说,(3, code.Length - 6)可能不会为您提供一个有效的json字符串,因此JsonConvert无法转换它。

可能会抛出一个异常,但您没有捕捉到它,因此,它显示了类似于“返回”的行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18029758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档