从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”: ...
答案 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}
)