C# 使用可变元素数反序列化JSON字符串

C# 使用可变元素数反序列化JSON字符串,c#,asp.net,json,C#,Asp.net,Json,我通过Javascript接收到第三方API JSON响应,我将其发送到服务器。在这里,我试图将其转换为一个对象。我在网上看到了一些使用自定义类的简单示例,但我的例子中的问题是字段的数量可能会改变。在一种情况下,他们可能只是:用户名:布拉,年龄:布拉…在另一种情况下,它可能是:用户名:布拉,年龄:布拉,最喜欢的游戏:布拉 这里最好的解决方案是什么 谢谢你的意见 PS:我正在尝试下面的代码,但我得到一个错误:数组的反序列化不支持Friends public class Friends {

我通过Javascript接收到第三方API JSON响应,我将其发送到服务器。在这里,我试图将其转换为一个对象。我在网上看到了一些使用自定义类的简单示例,但我的例子中的问题是字段的数量可能会改变。在一种情况下,他们可能只是:用户名:布拉,年龄:布拉…在另一种情况下,它可能是:用户名:布拉,年龄:布拉,最喜欢的游戏:布拉

这里最好的解决方案是什么

谢谢你的意见

PS:我正在尝试下面的代码,但我得到一个错误:数组的反序列化不支持Friends

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

protected void UpdateTrigger_Click(object sender, EventArgs e)
{
    Friends fbFriends = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<Friends>(Hidden1.Value);
}
公共课好友
{
公共IListdata{get;set;}
}
受保护的void updateRigger\u单击(对象发送方,事件参数e)
{
Friends fbFriends=new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize(Hidden1.Value);
}

使用-您可以反序列化到一个自定义的.NET对象中,该对象公开所有属性,如果(thing.Property!=null)则执行
以获取特定值,或者您也可以反序列化到
dynamic

,这看起来是一个不错的选择。不幸的是,我的公司将开发环境托管在一个高安全性的服务器上,无法访问internet,因此我无法安装第三方DLL。现在有没有其他的选择?JSON.NET被包括在ASP.NET的世界之外,所以我想你可以考虑它是安全的,不用担心它是一些无赖的第三方库。正如JoeeNOS所提到的,JSON.NET被包含在VisualStudio的ASP.NET项目模板中,所以如果你使用VS2012,你可能会拥有它。(可能不是最新版本)。如果没有,您能否要求他们提供一份副本(在另一台服务器上下载并传输)我理解安全性的需要,但它不应该阻止你使用第三方框架,这会让你的生活更轻松——特别是如果它们是开源的,并且是微软自己推荐的。如果没有预先定义字段,为什么要将其转换为强类型对象,因为你不知道成员名称?这些字段将在ad中已知vance,但是它们会有所不同。那么为什么不使用一个包含所有可能成员的大类,并始终反序列化到该类型的对象中呢?缺少的属性将为null。是的,我正在考虑这个选项,但在我的情况下,有很多成员1-20左右,我试图找到一种更简单的方法。首先,我设法让它工作我只需要将JSON放在一个容器中,这样ASP.NET就可以接收通常的d.myJSONobject。其次,Friends类中的“数据”需要重命名为“d”,然后一切正常。