解析 Json C#
Parsing Json C#
我在 Windows Phone 8 app.
中解析 C#
中的 JSON
时遇到了一个大问题
当我尝试执行这部分代码时应用程序关闭。当 C# 代码反序列化 json.
时附加问题
见下面的代码:C#(反序列化 + class 形式)和 JSON
结果。
感谢您的回答。
public partial class MyGrades : PhoneApplicationPage
{
string token = string.Empty;
string mail = string.Empty;
public class MyGradesJson
{
[JsonProperty("periods")]
public Periods periods { get; set; }
}
public class Periods
{
[JsonProperty("period")]
public List<Perioddata> perioddata { get; set; }
}
public class Perioddata
{
[JsonProperty("period")]
public Period period { get; set; }
// [JsonProperty("name")]
// public List disciplines { get; set; }
}
public class Period
{
[JsonProperty("id")]
public int id { get; set; }
[JsonProperty("name")]
public string name { get; set; }
[JsonProperty("start_date")]
public string start_date { get; set; }
[JsonProperty("end_date")]
public string end_date { get; set; }
}
HttpResponseMessage response = await httpClient.SendAsync(requestMessage);
string responseAsString = await response.Content.ReadAsStringAsync();
var resJson = JsonConvert.DeserializeObject<Periods>(responseAsString);
}
这是 Json 答案:
{
"periods":[
{
"period":{
"id":1,
"name":"Year 1",
"start_date":"2000-01-01",
"end_date":"2001-06-30"
},
"disciplines":[
{
"discipline":{
"id":6,
"name":"Potions"
},
"grades":[
{
"id":11,
"note":2,
"coefficient":2,
"assessment":"yolo",
"teacher":{
"id":2,
"user_id":4,
"login":"snape_se",
"name":"Snape, Severus"
}
},
{
"id":15,
"note":10,
"coefficient":1,
"assessment":"test",
"teacher":{
"id":2,
"user_id":4,
"login":"snape_se",
"name":"Snape, Severus"
}
}
]
}
]
}
]
}
我认为您的应用已损坏,因为您的 resJson
中有 null
。
您提供的 JSON 不会被反序列化为 Perods
对象实例。
尝试从 JSON 生成 C# 类。如果此功能在您的 VS 版本中不可用,请尝试使用在线工具。例如http://json2csharp.com/
我在 Windows Phone 8 app.
中解析C#
中的 JSON
时遇到了一个大问题
当我尝试执行这部分代码时应用程序关闭。当 C# 代码反序列化 json.
时附加问题见下面的代码:C#(反序列化 + class 形式)和 JSON
结果。
感谢您的回答。
public partial class MyGrades : PhoneApplicationPage
{
string token = string.Empty;
string mail = string.Empty;
public class MyGradesJson
{
[JsonProperty("periods")]
public Periods periods { get; set; }
}
public class Periods
{
[JsonProperty("period")]
public List<Perioddata> perioddata { get; set; }
}
public class Perioddata
{
[JsonProperty("period")]
public Period period { get; set; }
// [JsonProperty("name")]
// public List disciplines { get; set; }
}
public class Period
{
[JsonProperty("id")]
public int id { get; set; }
[JsonProperty("name")]
public string name { get; set; }
[JsonProperty("start_date")]
public string start_date { get; set; }
[JsonProperty("end_date")]
public string end_date { get; set; }
}
HttpResponseMessage response = await httpClient.SendAsync(requestMessage);
string responseAsString = await response.Content.ReadAsStringAsync();
var resJson = JsonConvert.DeserializeObject<Periods>(responseAsString);
}
这是 Json 答案:
{
"periods":[
{
"period":{
"id":1,
"name":"Year 1",
"start_date":"2000-01-01",
"end_date":"2001-06-30"
},
"disciplines":[
{
"discipline":{
"id":6,
"name":"Potions"
},
"grades":[
{
"id":11,
"note":2,
"coefficient":2,
"assessment":"yolo",
"teacher":{
"id":2,
"user_id":4,
"login":"snape_se",
"name":"Snape, Severus"
}
},
{
"id":15,
"note":10,
"coefficient":1,
"assessment":"test",
"teacher":{
"id":2,
"user_id":4,
"login":"snape_se",
"name":"Snape, Severus"
}
}
]
}
]
}
]
}
我认为您的应用已损坏,因为您的 resJson
中有 null
。
您提供的 JSON 不会被反序列化为 Perods
对象实例。
尝试从 JSON 生成 C# 类。如果此功能在您的 VS 版本中不可用,请尝试使用在线工具。例如http://json2csharp.com/