参考这个问题:
当然,很棒,但我可以吃蛋糕吗?
我正在寻找的是一种赏心悦目的方式,以一种字符可能包含的方式为一个属性提供一个替代名称.
就像是:
[BetterJsonProperty(PropertyName = "foo_bar")]
public string FooBar { get; set; }
Run Code Online (Sandbox Code Playgroud)
都
{
"FooBar": "yup"
}
Run Code Online (Sandbox Code Playgroud)
和
{
"foo_bar":"uhuh"
}
Run Code Online (Sandbox Code Playgroud)
将按预期反序列化.
由于没有属性的解决方案可以工作,或者类的属性如下:
[AllowCStylePropertyNameAlternatives]
Run Code Online (Sandbox Code Playgroud) 我有一个表示JSON的字符串,我想使用JSON.NET重命名一些属性.我需要一个通用函数来用于任何JSON.就像是:
public static void Rename(JContainer container, Dictiontionary<string, string> mapping)
{
foreach (JToken el in container.Children())
{
JProperty p = el as JProperty;
if(el != null && mapping.ContainsKey(p.Name))
{
// **RENAME THIS NODE!!**
}
// recursively rename nodes
JContainer pcont = el as JContainer;
if(pcont != null)
{
Rename(pcont, mapping);
}
}
}
Run Code Online (Sandbox Code Playgroud)
怎么做??