JSON到动态对象与强类型对象

时间:2015-06-29 14:42:28

标签: c# dynamic json.net dotnet-httpclient

我不确定我是不是不了解全局,或者我是否错过了什么,但将JSON-String解析为动态对象有什么好处?

如果我有这样的课程

class Product
{
    public string Name { get; set; }
    public double Price { get; set; }
    public string Category { get; set; }
}

我使用HttpClient来获取像这样的对象

Product product = await response.Content.ReadAsAsync<Product>();

我从这段代码中受益匪浅?

string content = await response.Content.ReadAsStringAsync();
dynamic product = JObject.Parse(content);

如果我想使用它们,我需要写

product.Name

使用强类型的apporach我至少有intellisense。如果服务改变了产品,动态方法对我没有帮助,因为我仍然需要像上面提到的那样访问它。

那我错过了什么?我为什么要使用动力学或什么时候?

1 个答案:

答案 0 :(得分:4)

总是更喜欢在动态(性能\便利性)上使用强类型。

以下是您希望使用动态的一些案例:

  1. 当您想要解析xml并且不想使用XElement,XPath等时。

  2. COM互操作 - 它使事情变得非常简单和好(尝试使用Excel \ Word,你会相信)。

  3. 在某些情况下,使用动态而非反射更好更易读。