【发布时间】:2017-02-24 12:13:38
【问题描述】:
我在 C# 中有一个可序列化的类,如下所示
namespace DataRequest
{
[Serializable]
public class BaseData
{
[JsonProperty(PropertyName = "u_additional_info")]
public string DeskNumber { get; set; }
}
}
我正在从数据库中获取数据并映射到这个类。我有需求
-
DeskNumber 将包含以下格式的数据
格式1。
<AdditionalInfo><Number>164</Number></AdditionalInfo>格式2
AdditionalInfo><Code>GLW51</Code><Lang>GLW51</LangCode><TzCode>GLW51</TzCode></AdditionalInfo>在序列化过程中,如果数据是第一个数据,我需要在标签下返回值(即 .164)。数字标签下的值在不同的时间会有所不同。所以需要一个逻辑查找数字标签下的值。如果数据在任何其他“Format1”以外的格式,然后将其返回为空白。
或者
我可以应用这个逻辑,即使它是在设置值期间而不是在序列化期间
谁能帮忙解决这个问题
【问题讨论】:
-
您通常会通过实现自定义 Json 序列化来做到这一点。例如结合 Google 的 JsonConverter 属性用于“Json.Net 自定义序列化”
-
Format1 和 Format2 是不同时间传入的文件内容吗?
-
Format1 和 Format2 是简单的字符串格式,我从数据库中获取它。因此,与其使序列化程序逻辑复杂化,是否可以在 DeskNumber 属性的 set 方法中应用此逻辑。从数据库本身获取我可以修改数据
标签: c# .net json serialization json.net