C# JSON反序列化异常
我编写了一个代码来解析这个 我已经用JSON2C生成了这个类: 关于obj反序列化C# JSON反序列化异常,c#,json,wpf,C#,Json,Wpf,我编写了一个代码来解析这个 我已经用JSON2C生成了这个类: 关于obj反序列化 我怎样才能修好它?如何选择正确的反序列化 您试图将其反序列化为RootObject列表,但实际上JSON只是一个根对象 试一试 您试图将其反序列化为RootObject列表,但实际上JSON只是一个根对象 试一试 您试图将其反序列化为RootObject列表,但实际上JSON只是一个根对象 试一试 您试图将其反序列化为RootObject列表,但实际上JSON只是一个根对象 试一试 好的,但是现在在foreach
我怎样才能修好它?如何选择正确的反序列化 您试图将其反序列化为
RootObject
列表,但实际上JSON只是一个根对象
试一试
您试图将其反序列化为
RootObject
列表,但实际上JSON只是一个根对象
试一试
您试图将其反序列化为
RootObject
列表,但实际上JSON只是一个根对象
试一试
您试图将其反序列化为
RootObject
列表,但实际上JSON只是一个根对象
试一试
好的,但是现在在foreach的obj中,我得到了一个红色下划线,特别是编译器显示的消息:foreach指令不能与Test.MainWindow.RootObject类型的变量一起工作,因为它不包含GetEnumerator定义。
obj
不再是一个列表,因此您将无法遍历它。如果你想重复一些东西,我猜是团队。我编辑了我的答案以反映这一点。好的,谢谢你的帮助,我真的很感谢你的回答。谢谢!好的,但是现在在foreach的obj中,我得到了一个红色下划线,特别是编译器显示的消息:foreach指令不能与Test.MainWindow.RootObject类型的变量一起工作,因为它不包含GetEnumerator定义。obj
不再是一个列表,因此您将无法遍历它。如果你想重复一些东西,我猜是团队。我编辑了我的答案以反映这一点。好的,谢谢你的帮助,我真的很感谢你的回答。谢谢!好的,但是现在在foreach的obj中,我得到了一个红色下划线,特别是编译器显示的消息:foreach指令不能与Test.MainWindow.RootObject类型的变量一起工作,因为它不包含GetEnumerator定义。obj
不再是一个列表,因此您将无法遍历它。如果你想重复一些东西,我猜是团队。我编辑了我的答案以反映这一点。好的,谢谢你的帮助,我真的很感谢你的回答。谢谢!好的,但是现在在foreach的obj中,我得到了一个红色下划线,特别是编译器显示的消息:foreach指令不能与Test.MainWindow.RootObject类型的变量一起工作,因为它不包含GetEnumerator定义。obj
不再是一个列表,因此您将无法遍历它。如果你想重复一些东西,我猜是团队。我编辑了我的答案以反映这一点。好的,谢谢你的帮助,我真的很感谢你的回答。谢谢!
public class Link
{
public string self { get; set; }
public string soccerseason { get; set; }
}
public class Self
{
public string href { get; set; }
}
public class Fixtures
{
public string href { get; set; }
}
public class Players
{
public string href { get; set; }
}
public class Links
{
public Self self { get; set; }
public Fixtures fixtures { get; set; }
public Players players { get; set; }
}
public class Team
{
public Links _links { get; set; }
public string name { get; set; }
public string code { get; set; }
public string shortName { get; set; }
public string squadMarketValue { get; set; }
public string crestUrl { get; set; }
}
public class RootObject
{
public List<Link> _links { get; set; }
public int count { get; set; }
public List<Team> teams { get; set; }
}
private void League_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string requestUrl = "http://api.football-data.org/alpha/soccerseasons/122/teams";
HttpWebRequest request = WebRequest.Create(requestUrl) as HttpWebRequest;
request.Method = "GET";
request.ContentType = "application/json";
string responseText;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
using (var responseStream = new StreamReader(response.GetResponseStream()))
{
responseText = responseStream.ReadToEnd();
}
List<RootObject> obj = JsonConvert.DeserializeObject<List<RootObject>>(responseText);
foreach (var item in obj)
{
Home.Items.Add(item.name);
}
}
Unhandled Exception "Newtonsoft.Json.JsonSerializationException" in Newtonsoft.Json.dll
Cannot deserialize the current JSON object (e.g {"name":"value"}) into type "System.Collections.Generic.List"1
[Test.MainWindow+RootObject]" because the type requires a Json array (e.g. [1,2,3]) to deserialize correctly.
RootObject obj = JsonConvert.DeserializeObject<RootObject>(responseText);
foreach (var item in obj.teams)
{
Home.Items.Add(item.name);
}