動態類型和匿名型別在asp.net webapi中的應用

來源:互聯網
上載者:User

標籤:

1、  動態類型用於webapi調用

假設需要調用一個webapi,webapi返回了一個json字串。字串如下:

{"ProductId":"AN002501","ProductName":"XX洗衣粉","Description":"","UnitPrice":9.9}

問:如何獲得json字串中的值?

常規的做法是:先構建一個類,然後再使用JsonConvert對它進行還原序列化。樣本如下:

(1)構建類

 1 public class Product 2 { 3  4         public string ProductId { get; set; } 5  6         public string ProductName { get; set; } 7  8         public string Description { get; set; } 9 10         public decimal UnitPrice { get; set; }11 12 }

(2)還原序列化:

1 string jsonString = "{\"ProductId\":\"AN002501\",\"ProductName\":\"XX洗衣粉\",\"Description\":\"\",\"UnitPrice\":9.9}";2 3 dynamic product = JsonConvert.DeserializeObject<Product>(jsonString);

 

若是使用動態類型的話,則可以不需要構建一個類來承載序列化。樣本如下:

1 dynamic obj = JsonConvert.DeserializeObject<dynamic>(jsonString);

 

2、  匿名型別用於webapi輸出

假設需要輸出以下的json字串:{"Id":"AN002501","Price":9.9}。問:如何達成目的?

常規的做法是:先構建一個擁有Id和Price屬性的類,然後再對它進行序列化後輸出。樣本如下:

(1)構建類

1 public class SimpleProduct2 {3         public string Id { get; set; }4 5         public decimal Price { get; set; }6 }

(2)序列化後輸出

public ActionResult Test1(){    return Json(new SimpleProduct { Id = "1333", Price = 9.9M }, JsonRequestBehavior.AllowGet);   
}

 

若使用匿名型別的話,則不需要構建一個類來承載序列化。樣本如下:

public ActionResult Test2(){    return Json(new { Id = "1333", Price = 9.9M }, JsonRequestBehavior.AllowGet);}

 

動態類型和匿名型別在asp.net webapi中的應用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.