C# 用JSON.NET问题反序列化JSON
我一直在尝试使用JSON.Net在C#中反序列化JSON流 我有一个JObject“JO1”,当我对其执行JO1.ToString()时,字符串内容如下:C# 用JSON.NET问题反序列化JSON,c#,.net,json,json.net,C#,.net,Json,Json.net,我一直在尝试使用JSON.Net在C#中反序列化JSON流 我有一个JObject“JO1”,当我对其执行JO1.ToString()时,字符串内容如下: { "Successful": true, "Value": [ { "no": "1", "name": "Accounting" }, { "no": "2", "name": "Marketing" }, { "no": "3",
{
"Successful": true,
"Value": [
{
"no": "1",
"name": "Accounting"
},
{
"no": "2",
"name": "Marketing"
},
{
"no": "3",
"name": "Information Technology"
}
]
}
我尝试了以下.NET代码,但没有成功
public class main()
{
public void main()
{
JObject jo = new JObject();
jo = functionthatretrievestheJSONdata();
List<departments> dt1 = JsonConvert.DeserializeObject<List<departments>>(jo.ToString());
}
}
public class departments
{
public int no { get; set; }
public string name { get; set; }
}
public类main()
{
公共图书馆
{
JObject jo=新的JObject();
jo=检索JSONDATA()的函数;
List dt1=JsonConvert.DeserializeObject(jo.ToString());
}
}
公共课系
{
公共int no{get;set;}
公共字符串名称{get;set;}
}
谁能给我一个指向正确方向的指针吗?您需要一个类来包装
列表,如下所示:
public class DeserializedDepartments
{
public bool Successful { get; set; }
public List<departments> Value { get; set; }
}
DeserializedDepartments dt1 =
JsonConvert.DeserializeObject<DeserializedDepartments>(jo.ToString());
公共类反序列化的部分
{
公共bool成功{get;set;}
公共列表值{get;set;}
}
所以你可以这样反序列化:
public class DeserializedDepartments
{
public bool Successful { get; set; }
public List<departments> Value { get; set; }
}
DeserializedDepartments dt1 =
JsonConvert.DeserializeObject<DeserializedDepartments>(jo.ToString());
反序列化的部门dt1=
反序列化对象(jo.ToString());
现在您的列表
位于dt1的值
;或者dt1.Value
您需要一个类来包装列表
,如下所示:
public class DeserializedDepartments
{
public bool Successful { get; set; }
public List<departments> Value { get; set; }
}
DeserializedDepartments dt1 =
JsonConvert.DeserializeObject<DeserializedDepartments>(jo.ToString());
公共类反序列化的部分
{
公共bool成功{get;set;}
公共列表值{get;set;}
}
所以你可以这样反序列化:
public class DeserializedDepartments
{
public bool Successful { get; set; }
public List<departments> Value { get; set; }
}
DeserializedDepartments dt1 =
JsonConvert.DeserializeObject<DeserializedDepartments>(jo.ToString());
反序列化的部门dt1=
反序列化对象(jo.ToString());
现在您的列表
位于dt1的值
;或者dt1.Value
您没有考虑列表是附加到另一个对象的数组
您有一个布尔值为Successful
的对象和一个名为value
的部门数组
试试这个:
public class main()
{
public void main()
{
JObject jo = new JObject();
jo = functionthatretrievestheJSONdata();
Results dt1 = JsonConvert.DeserializeObject<Results>(jo.ToString());
var depts = dt1.Value;
}
}
public class Results
{
public bool Successful {get;set;}
public List<Department> Value {get;set;}
}
public class Department
{
public int no { get; set; }
public string name { get; set; }
}
public类main()
{
公共图书馆
{
JObject jo=新的JObject();
jo=检索JSONDATA()的函数;
结果dt1=JsonConvert.DeserializeObject(jo.ToString());
var depts=dt1.值;
}
}
公开课成绩
{
公共bool成功{get;set;}
公共列表值{get;set;}
}
公共课系
{
公共int no{get;set;}
公共字符串名称{get;set;}
}
您没有考虑到列表是附加到另一个对象的数组
您有一个布尔值为Successful
的对象和一个名为value
的部门数组
试试这个:
public class main()
{
public void main()
{
JObject jo = new JObject();
jo = functionthatretrievestheJSONdata();
Results dt1 = JsonConvert.DeserializeObject<Results>(jo.ToString());
var depts = dt1.Value;
}
}
public class Results
{
public bool Successful {get;set;}
public List<Department> Value {get;set;}
}
public class Department
{
public int no { get; set; }
public string name { get; set; }
}
public类main()
{
公共图书馆
{
JObject jo=新的JObject();
jo=检索JSONDATA()的函数;
结果dt1=JsonConvert.DeserializeObject(jo.ToString());
var depts=dt1.值;
}
}
公开课成绩
{
公共bool成功{get;set;}
公共列表值{get;set;}
}
公共课系
{
公共int no{get;set;}
公共字符串名称{get;set;}
}