JSON反序列化c#错误

时间:2013-05-13 14:55:34

标签: c# json

我正在关注这个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; }
}

2 个答案:

答案 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'类型定义无参数构造函数。”