匹配此JSON的模型,以进行挑战,带有破折号的字段名称



我正在尝试创建一个符合JSON.NET的json结构的模型:第一项...

    {
    "190374": {
    "vid": 190374,
    "canonical-vid": 190374,
    "portal-id": 62515,
    "is-contact": true,
    "profile-token": "AO_T-mN1n0Mbol1q9X9UeCtRwUE1G2GFUt0VVxCzpxUF1LJ8L3i75x9NmhIiS0K9UQkx19bShhlUwlIujY4pSXAFPEfDG-k9n8BkbftPw6Y5oM3eU5Dc_Mm-5YNJTXiWyeVSQJAN_-Xo",
    "profile-url": "https://app.hubspot.com/contacts/62515/lists/public/contact/_AO_T-mN1n0Mbol1q9X9UeCtRwUE1G2GFUt0VVxCzpxUF1LJ8L3i75x9NmhIiS0K9UQkx19bShhlUwlIujY4pSXAFPEfDG-k9n8BkbftPw6Y5oM3eU5Dc_Mm-5YNJTXiWyeVSQJAN_-Xo/",
    "properties": {
    "phone": {
    "value": "null"
    },
    "hs_social_linkedin_clicks": {
    "value": "0"
    },
    "hs_social_num_broadcast_clicks": {
    "value": "0"
    },
    "hs_social_facebook_clicks": {
    "value": "0"
    },
    "state": {
    "value": "MA"
    },
    "createdate": {
    "value": "1380897795295"
    },
    "hs_analytics_revenue": {
    "value": "0.0"
    },
    "lastname": {
    "value": "Mott"
    },
    "company": {
    "value": "HubSpot"
    }
    },
    "form-submissions": [],
    "identity-profiles": []
    },
     "form-submissions": [],
    "identity-profiles": []
    },
**next similar entry**

然后,我尝试使用以下列表绑定:

public class HubSpotEmailRqst
{
    public int vid { get; set; }
    public int canonical-vid { get; set; }
    public int portal-id { get; set; }
    public bool is-contact { get; set; }
    public String profile-token { get; set; }
    public String profile-url { get; set; }
    public Dictionary<string, string> properties { get; set; }
    public Dictionary<string,string> form-submissions { get; set; }
    public Dictionary<string,string> identity-profiles { get; set; }
}

我不确定这是否会绑定,但是我无法摆脱我们不能在字段名称中拥有连字符的事实,我该如何解决?

有两种与连字符使用属性的方法:

  1. 根据C#规则的名称属性,但用[JsonProperty("property-name")]属性装饰它们。

  2. 使用修改属性名称的自定义合同解析器。例如,如果JSON中的所有属性都始终命名,则可以使用REGEX将Pascalcase C#属性名称更改为较低的JSON属性名称。请参阅JSON.NET的CamelCasePropertyNamesContractResolver,例如实现。

如果我正确地理解了这个问题,那么您对C#程序中的字段名称中的连字符感到不安?为什么不使用骆驼来识别字段?而不是is-contact使用'isContact'。而不是canonical-vid。使用 canonicalVid.当然,名称可能会 look 不同,但是对于程序员来说,含义应清楚。

相关内容

  • 没有找到相关文章

最新更新