我正在关注这个JSON反序列化示例: Deserialize JSON with C#
但我遇到了一个问题。我的json文件有不同的结构。
"data": [
{
"id": "157156474316544_575441765821344",
"from": {
"name": "Testy McTest",
"id": "624161969"
},
"message": "I am a message"...
所以当我实例化序列化器时:
FacebookFeed facebookPosts = new JavaScriptSerializer().Deserialize<FacebookFeed>(jsonFromWeb);
我收到错误“没有为'System.String'类型定义无参数构造函数。”
如果有人知道如何解决这个问题我会非常感激。
我的结构是:
public class FacebookFeed
{
public List<FacebookPost> data { get; set; }
}
public class FacebookPost
{
public string id { get; set; }
public string from { get; set; }
public string message { get; set; }
}
答案 0 :(得分:3)
问题是from
是一个复杂的(它有几个用户属性/属性 - id,name)对象,但你已经将它声明为纯字符串。
尝试类似:
public class Sender
{
public string id {get;set;}
public string name {get;set;}
}
public class FacebookPost
{
public string id { get; set; }
public Sender from { get; set; }
public string message { get; set; }
}
答案 1 :(得分:0)
'from'是一个对象,而不是一个字符串。因此,您将收到错误“没有为'System.String'类型定义无参数构造函数。”