基于正则表达式拆分JSON键以存储在多个变量中
本文关键字:变量 存储 正则表达式 拆分 JSON | 更新日期: 2023-09-27 18:04:46
{"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
来操作底层的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();
}
}