.net - 如果更改字段 .NET 的名称,DataMemeber 属性会出现问题
问题描述
我用我的控制器使用restsharp(一个web api,.NET web应用程序项目)调用这个https://jsonplaceholder.typicode.com/albums 。这是我的课,我使用 Datacontracts 和 DataMemebers。
[DataContract]
public class Album
{
[DataMember(Name = "userId")]
public int UserId { get; set; }
[DataMember(Name = "id")]
public int Id { get; set; }
[DataMember(Name = "title")]
public string Title { get; set; }
}
使用邮递员的结果是:
{
"userId": 1,
"id": 1,
"title": "quidem molestiae enim"
}
我设置了正确的参考,它工作正常。
但是,例如,当我用其他名称更改字段名称时
[DataContract]
public class Album
{
[DataMember(Name = "userId")]
public int myproject { get; set; }
[DataMember(Name = "id")]
public int code { get; set; }
[DataMember(Name = "title")]
public string name { get; set; }
}
并使用邮递员,结果是
{
"userId": 0,
"id": 0,
"title": null
}
为什么会这样?使用此属性必须识别所有字段名称
解决方案
您是否尝试过使用 JsonProperty 属性?这就是我使用 JSON.NET 库 (Newtonsoft) 序列化/反序列化 JSON 的方式
[JsonProperty("SomeJsonPropertyName")]
public string YourNewPropertyName{ get; set; }
希望这个链接也有帮助:JsonPropertyAttribute Name Documentation JSON.NET
推荐阅读
- visual-studio-code - VS Code 中的多个片段前缀
- javascript - How to re render a .ejs page with new data after ajax request
- c - Conversion from 32 bit to 8-bit values and vice-versa in assembly giving segmentation fault
- c++ - How to make a point appear using fltk?
- java - Why does Scanner nextLine() read one file but not another in the same directory?
- ios - Scale Uimage to Large size App be Crashed in Swift
- android - "java.io.FileNotFoundException (No such file or directory)"
- javascript - 我制作的用户脚本部分有效。有什么修复吗?
- r - Increasing RAM usage - R in ubuntu
- javascript - 如何将组件对象移动到全局对象?