{"key":"abc/1"}
我想将值存储在两个字段中而不是一个字段中。我可以执行以下操作。
[JsonProperty(PropertyName = "key", Required = Required.Always)]
public string Value { get; set; }
但是,我想有两个字段,但可以JsonProperty
将它们序列化和反序列化为组合字符串。例如,如果我定义以下字段:
public string ValueScope { get; set; }
public int ValueId { get; set; }
我想在反序列化时使用JsonProperty或任何其他标签填充字段。是否可以这样做,即将ValueScope填充为“ abc”,并将ValueId填充为1?
是的,您实际上可以实现get
和set
属性中的2和以仅操作基础JsonProperty
。
这是一个简短的示例,说明您可能会如何处理(警告:我只是在记事本中写了这个,所以请原谅任何错别字)。
public string ValueScope
{
get
{
var values = (this.Value ?? "").Split('/');
if (values.Length == 2)
return values[0];
else
return null;
}
set
{
this.Value = (value ?? "") + "/" + this.ValueId.ToString();
}
}
public int ValueId
{
get
{
int currentValue;
var values = (this.Value ?? "").Split('/');
if (values.Length == 2 && int.TryParse(values[1], out currentValue))
return currentValue;
else
return default(int);
}
set
{
this.Value = (this.ValueScope ?? "") + "/" + value.ToString();
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句