我有这样的驼峰式 JSON:
{
"name": "John",
"age": 55
}
Run Code Online (Sandbox Code Playgroud)
我需要将其反序列化为 ExpandoObject,但我希望属性采用 Pascal Case。所以我应该能够这样做:
dynamic obj = JsonConvert.DeserializeObject<ExpandoObject>(json);
Console.WriteLine($"{obj.Name} is {obj.Age}");
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我的业务代码使用动态属性。所以我需要使用某种形式的 DynamicObject。
恕我直言 - 我明白这一点,但至少对我来说,它并不能解释套管的需要......
无论如何,这是一次有趣的欢乐时光练习……我认为这很糟糕,可能永远不会见光:)
var json = "{ \"name\": \"John\", \"age\": 55, \"fooBoo\": 0}";
JObject obj = JObject.Parse(json);
dynamic foo = new ExpandoObject();
var bar = (IDictionary<string, object>) foo;
foreach (JProperty property in obj.Properties())
{
var janky = property.Name.Substring(0, 1).ToUpperInvariant() + property.Name.Substring(1);
bar.Add(janky, property.Value);
}
Console.WriteLine($"{foo.Name} , {foo.Age}, {foo.FooBoo}");
Run Code Online (Sandbox Code Playgroud)
TGIF :)