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

本文关键字:反序列化 对象 JavaScriptSerializer 使用 JSON 包装 | 更新日期: 2023-09-27 17:58:58

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的代码。当我在json数据上运行这个过程时,它没有被包裹在"1"后面,它可以完美地工作。

目前我认为我的问题是json被封装在"1"中。由于命名约定,我不能将属性与JavaScriptSerializer一起使用,也不能创建标记为"1"的根元素

有什么想法吗?

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

尝试将反序列化设置为Dictionary<string, HubspotRecord>Dictionary<string, WebHookResponse>。我不能说我使用了JavaScriptSerializer太多,但我希望它能在数据库中创建一个关键字为"1"并具有适当值的条目。无论如何,值得一试:)

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