json.net - 如何用名称中的点序列化/反序列化 json
问题描述
我在包含字段名称中的点的 JSON 字符串上使用了内置的 Visual Studio 菜单选项“Paste Special->Paste JSON as classes”选择。(例如: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 段反序列化为类对象时,不会提取值。但是,如果我放置一个 JsonProperty 属性并将 PropertyName 设置为带有点的名称,例如 [JsonProperty(PropertyName = "System.Title")],那么 Json.NET 可以解析名称并在反序列化时分配正确的值。
有没有办法让 Json.NET 自动执行此名称查找转换,而不必将 JsonProperty 分配给与名称中带有点的字段相关联的所有类属性?
解决方案
推荐阅读
- c# - 应用程序/八位字节流在下载后用 NULL 填充文件的最后一行
- git - TortoiseGit 如何识别项目未提交到远程仓库?
- python - 尝试将信息发送到 mysql 数据库时,是否有一个 python 函数可以拆分行?
- java - 从 recyclview 添加 jsonarray
- android - Android和iOS之间通过蓝牙进行数据通信
- java - 生成 jaxb 类时重复的简单类型
- firebase - 如何等待最里面的firebase函数的响应?
- python - Altair mark_line plots noisier than matplotlib?
- javascript - 登录成功后如何更新 ApolloClient 授权标头?
- python - 这是在同一视图中处理多个表单集的好方法吗?