0

从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":...

4

1 回答 1

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})

于 2013-08-06T15:42:34.653 回答