[英]Deserialize Json List to C# List objects
我有返回json字符串的类,但我想将其反序列化为C#列表对象。 我当前的代码如下所示
public class JsonBuilder
{
public static string BuildJson(DateTime fromDate, DateTime toDate)
{
var list = new List<dynamic>();
// create list with json object from service
var jsonObjList = JsonConvert.SerializeObject(list);
var des = (List<JsonObject>)JsonConvert.DeserializeObject(jsonObjList, typeof(List<JsonObject>));
return JsonConvert.SerializeObject(list);
}
尝试反序列化“序列化” json字符串时引发的异常
An exception of type 'Newtonsoft.Json.JsonSerializationException' occurred in Newtonsoft.Json.dll but was not handled in user code
Additional information: Error converting value
InnerException:
{"Could not cast or convert from System.String to MvcWebApp.Models.JsonObject."}
您是否尝试过:
var des = (List<DeserializeObjects>)JsonConvert.DeserializeObject(jsonObjList, jsonObjList.GetType()));
或这个:
var des = (List<DeserializeObjects>)JsonConvert.DeserializeObject(jsonObjList, typeof(List<dynamic>));
否则,这篇文章也可以帮助您实现目标:
尝试这个
var jsonObjList = JsonConvert.SerializeObject(list);
dynamic resultList = JsonConvert.DeserializeObject(jsonObjList);
我会尝试这class
public class Author
{
public int id { get; set; }
public string slug { get; set; }
public string name { get; set; }
public string first_name { get; set; }
public string last_name { get; set; }
public string nickname { get; set; }
public string url { get; set; }
public string description { get; set; }
}
public class CustomFields
{
public List<string> tags { get; set; }
}
public class Post
{
public int id { get; set; }
public string type { get; set; }
public string slug { get; set; }
public string url { get; set; }
public string status { get; set; }
public string title { get; set; }
public string title_plain { get; set; }
public string content { get; set; }
public string excerpt { get; set; }
public string date { get; set; }
public string modified { get; set; }
public List<object> categories { get; set; }
public List<object> tags { get; set; }
public Author author { get; set; }
public List<object> comments { get; set; }
public List<object> attachments { get; set; }
public int comment_count { get; set; }
public string comment_status { get; set; }
public CustomFields custom_fields { get; set; }
}
public class YourObject
{
public string status { get; set; }
public int count { get; set; }
public int count_total { get; set; }
public int pages { get; set; }
public List<Post> posts { get; set; }
}
然后,您使用以下方法反序列化:
var yourObject = JsonConvert.DeserializeObject<YourObject>(json);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.