JSON ASP.NET反序列化失败,变为null

时间:2013-08-06 15:24:55

标签: c# asp.net facebook facebook-javascript-sdk

从Javascript我通过字符串发送我的对象,数据是facebook FQL查询返回的内容:

var propData = new Object();
propData.d = data;
var jString = JSON.stringify(propData);
$('#<%=Hidden1.ClientID%>').val(jString);
$('#UpdatePanelTrigger').click();

然后,我在服务器端收到此字符串,在标签中显示此JSON字符串(对我来说没问题)并尝试反序列化它,代码如下。

 public class Friends
{
    public IList<Dictionary<string,string>> data {get; set;}
}

protected void UpdateTrigger_Click(object sender, EventArgs e)
{
    JSON_out.Text = Hidden1.Value;
    Friends fbookFriends = new System.Web.Script.Serialization.JavaScriptDerializer().Deserialize<Friends>(JSON_out.Text);
    obj_check.Text = new System.Web.Script.Serialization.JavaScriptSErializer().Serialize(fbookFriends);
    //The result of above line is {"data":null}
}

我不明白为什么Deserializer拒绝将此字符串转换为JSON。 任何帮助将不胜感激。 在。

PS:如果有帮助,我在服务器上收到的JSON字符串如下所示: {“d”:[{“uid”:“XXXXXXXX”,“name”:“Bro Number1”,“pic_square”:“https://fbcdn-profile-a.akamaihd.net/beautiful_avatar.jpg”},{“uid”:“XXXXX2”,“name”: ...

1 个答案:

答案 0 :(得分:1)

为了能够反序列化你的json字符串,你的Friends类应该是那样的

public class Friend
{
    public string uid { get; set; }
    public string name { get; set; }
    public string pic_square { get; set; }
}

public class Friends
{
    public List<Friend> d { get; set; }
}

但您的评论表明您有一些顶级字段,例如data//The result of above line is {"data":null}