基于正则表达式拆分JSON密钥以存储在多个变量中

骑士
{"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?

杰森w

是的,您实际上可以实现getset属性中的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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章