如何使用名称中的点序列化/反序列化json

时间:2020-07-23 17:54:00

标签: json.net

我在包含字段名称中包含点的JSON字符串上使用了内置的Visual Studio菜单选项“选择性粘贴-> JSON粘贴为类”。 (例如:System.Title)。

生成的类具有从类的属性名称中删除的点(可以理解)(在上面的示例中,System.Title = SystemTitle)。 这是我尝试反序列化的JSON示例的摘录(来自Microsoft TFS REST API):

 {
    "id": 27736,
    "rev": 6,
    "fields": {
      "System.WorkItemType": "Test Case",
      "System.State": "Ready",
      "System.Reason": "Completed",
      "System.Title": "EFCValuesTest_DenomNotPresent",
      "Microsoft.VSTS.Common.StateChangeDate": "2019-02-14T21:15:37.627Z",
      "Microsoft.VSTS.Common.ActivatedDate": "2019-01-25T20:25:52.743Z",
      "Microsoft.VSTS.Common.Priority": 4,
    },
  },

请注意,尽管使用了CamelCase,但也有点(。)名称分隔符。

当我尝试将字段JSON段反序列化为类对象时,不会提取值。但是,如果我将PropertyName设置为带有[JsonProperty(PropertyName =“ System.Title”)]之类的点的名称的JsonProperty属性,则Json.NET可以解析该名称并在反序列化时分配正确的值。

是否可以让Json.NET自动执行此名称查找转换,而不必将JsonProperty分配给与名称中带有点的字段相关联的所有类属性?

0 个答案:

没有答案