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

时间:2011-06-13 16:54:15

标签: c# json javascriptserializer

JSON示例:

{
  "1":{
       "guid":"8a40135230891fa70130891ff1000009",
       "portalId":23832
      }
}

我用来反序列化的代码是:

var serializer = new JavaScriptSerializer();
var lead = serializer.Deserialize<WebHookResponse>([json]);

我使用反序列化代码的代码是:

public class WebHookResponse
{
  public HubspotRecord Record { get; set; }
}

组成HubspotRecord的代码被省略了。当我在没有包装在“1”后面的json数据上运行该过程时,它完美地工作。

目前我在想我的问题是json包含在“1”中。我不能在JavaScriptSerializer中使用属性,因为命名约定,我无法创建标记为“1”的根元素。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

尝试反序列化Dictionary<string, HubspotRecord>Dictionary<string, WebHookResponse>。我不能说我已经使用了JavaScriptSerializer,但是我希望它能够在数据库中创建一个条目,其键为“1”并且具有适当的值。值得一试,无论如何:)

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