我有这个代码反序列化这个json但我一直收到这个错误:
“无法将System.String类型的对象转换为类型 Namespace.Models.Url“
。 json结构如下:
[{fileUrl:“localhost / ContentManager / get / ovYWB0 / 81 / wallpaper”},{ fileUrl:“localhost / ContentManager / get / AcjwO0 / 81 / wallpaper”},{ fileUrl:“localhost / ContentManager / get / HCR0q0 / 81 / wallpaper”} ]
我要映射的类如下:
public class Url { public string FileUrl { get; set; } } public class Response { public Url FileUrl { get; set; } }
反序列化代码如下:
var serializer = new JavaScriptSerializer();
IList<MTContribute> data = new List<MTContribute>();
var items = serializer.Deserialize<List<Response>>(json);
foreach (var item in items)
{
var newData = new MTContribute
{
DateCreated = DateTime.Today,
IsActive = Convert.ToBoolean("True"),
MTContributeCategoryId = Category.MTContributeCategoryId,
Url = item.FileUrl.FileUrl
};
data.Add(newData);
}
答案 0 :(得分:0)
根据你当前的json结构,这应该可行
var items = serializer.Deserialize<List<Url>>(json); // Url instead of Response
如果这对您不起作用,则必须更改json结构以反映Response
类的结构。
除非我错过了什么,否则这是必要的json结构
[{ fileUrl:{ fileUrl: "localhost/ContentManager/get/ovYWB0/81/wallpaper" }}]