c# - 在 C# 中反序列化 JSON 时,我们可以为一个属性生成值作为其他属性的组合吗?

标签 c# json json-deserialization

<分区>

我有一个用于反序列化 JSON 的 Artifact 类,它是使用 JsonConvert.DeserializeObject() 处理的。

我试图解决的问题是我需要在模型中设置一个属性的值,它不是 JSON 的一部分,作为 JSON 中存在的其他两个属性的组合。

public class Artefact : RealmObject
    {
        [PrimaryKey]
        public string Key { get; set; }
        [JsonProperty(PropertyName = "id")]
        public int ProductId { get; set; }
        [JsonProperty(PropertyName = "name")]
        public string Name { get; set; }
        [JsonProperty(PropertyName = "instructors")]
        public IList<Instructors> Instructors { get; }
        [JsonProperty(PropertyName = "startAt")]
        public string StartAt { get; set; }
        [JsonProperty(PropertyName = "endAt")]
        public string EndAt { get; set; }
        [JsonProperty(PropertyName = "actualStartAt")]
        public string ActualStartAt { get; set; }
        [JsonProperty(PropertyName = "actualEndAt")]
        public string ActualEndAt { get; set; }
        [JsonProperty(PropertyName = "status")]
        public string APIStatus { get; set; }
        [JsonProperty(PropertyName = "assignmentNumber")]
        public int AssignmentNumber { get; set; } = -1;
    }

List<Artefact> artefacts = JsonConvert.DeserializeObject<List<Artefact>>(data, _settings);

在反序列化作为 API 响应获得的 JSON 字符串的“数据”时,我希望将 Key 的值设置为 ProductId.ToString() + AssignmentNumber.ToString( )

最佳答案

你可以像这样在你的类中添加一个属性:

    [JsonIgnore]
    public string MyProp { get { return this.ProductId.ToString() + this.AssignmentNumber.ToString(); } }

关于c# - 在 C# 中反序列化 JSON 时,我们可以为一个属性生成值作为其他属性的组合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54289102/

相关文章:

java - 使用 jackson 将自定义反序列化类添加到已经存在的@JsonDeserialize 注释

c# - 如何使用 Naudio 将 WAV 流转换为 MP3?

c# - SharePoint 以编程方式将内容写入站点导航

c# - 使用 System.Text.Json (.NET 6) 获取 JSON 的所有路径和类型

java - 使用 JAXB 将 JSON 编码/解码为 Java 类

c# - 如何使用 System.Text.Json 正确反序列化具有 IReadOnlyCollection<T> 的类?

java - Jackson 无法创建已在 ObjectMapper 中注册的类的实例

c# - Windows 10通用应用程序。如何触发后台任务?

c# - 在可滚动的图库中显示列表

mysql - 结合 CONCAT() 和 COALESCE() 在 MySQL 中生成 JSON