2013-08-06 97 views
0

从JavaScript我通过发送一串我的对象,像这样,数据就是Facebook的FQL查询返回:JSON ASP.NET反序列化失败,让空

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

我不明白为什么反序列化器拒绝将此字符串转换为JSON。 任何帮助,将不胜感激。 I.N.我的JSON字符串在服务器上收到,如下所示: {“d”:[{“uid”:“XXXXXXXX”,“name”:“Bro Number1”,“pic_square”: “https://fbcdn-profile-a.akamaihd.net/beautiful_avatar.jpg ”},{“ UID”: “XXXXX2”, “名”:...

回答

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}

+0

哇,修正就像将“数据”更改为“d”一样简单...非常感谢您的先生! – RealityDysfunction

+0

这不是一个直接的答案,但我建议你使用JSON.NET的所有JSON代码http://james.newtonking.com/projects/json-net.aspx –