C# 包装JSON时,使用JavaScriptSerializer反序列化对象

C# 包装JSON时,使用JavaScriptSerializer反序列化对象,c#,json,javascriptserializer,C#,Json,Javascriptserializer,JSON示例: { "1":{ "guid":"8a40135230891fa70130891ff1000009", "portalId":23832 } } 我用来反序列化的代码是: var serializer = new JavaScriptSerializer(); var lead = serializer.Deserialize<WebHookResponse>([json]); 组成hubspottrecord的代码被省略

JSON示例:

{
  "1":{
       "guid":"8a40135230891fa70130891ff1000009",
       "portalId":23832
      }
}
我用来反序列化的代码是:

var serializer = new JavaScriptSerializer();
var lead = serializer.Deserialize<WebHookResponse>([json]);
组成hubspottrecord的代码被省略。当我对没有包装在“1”后面的json数据运行该进程时,它工作得非常好

目前我认为我的问题是json被包装在“1”中。由于命名约定,我无法在JavaScriptSerializer中使用属性,也无法创建标记为“1”的根元素。


有什么想法吗?

试着对它进行反序列化,比如使用
字典或
字典。我不能说我经常使用
JavaScriptSerializer
,但我希望它在数据库中创建一个键为“1”和适当值的条目。无论如何,值得一试:)


或者,您可能希望将其加载到类似DOM的结构中,然后反序列化真正需要的位。

快速回答。一个好的<代码>变量字典=序列化程序。反序列化(结果)太好了!我在使用Xamarin/JSON.Net的iOS设备上尝试使用jarrays时遇到异常。这个解决方案是一个不错的选择。
public class WebHookResponse
{
  public HubspotRecord Record { get; set; }
}