C#後台接收前台JSON字符串裝換成字典聚集處置。本站提示廣大學習愛好者:(C#後台接收前台JSON字符串裝換成字典聚集處置)文章只能為提供參考,不一定能成為您想要的結果。以下是C#後台接收前台JSON字符串裝換成字典聚集處置正文
一向以來,我們都是在辦事端查詢出成果生成JSON字符串,供前端挪用,那末我們可否把早年端接收的JSON字符串轉換成字典聚集,讓後台處置呢?
好比早年端吸收:{'size':'10', 'weight':'10kg'}
在辦事端轉換成:[{size:"10"},{weight:"10kg"}]如許的字典聚集
經由過程Newtonsoft的DeserializeObject<Dictionary<string, string>>辦法可以把JSON字符串反序列化成字典聚集。
假定有如許的一個Model(實體)
using Newtonsoft.Json; using Newtonsoft.Json.Linq; public class Product { public string ProductDetails { get; set; } public Dictionary<string, string> ProductDetailList { get { if (string.IsNullOrWhiteSpace(ProductDetails)) { return new Dictionary<string, string>(); } try { var obj = JToken.Parse(ProductDetails); } catch (Exception) { throw new FormatException("ProductDetails不相符json格局."); } return JsonConvert.DeserializeObject<Dictionary<string, string>>(ProductDetails); } } }
以上,經由過程JToken.Parse斷定JSON字符串能否可以被轉換,假如不可就拋異常。經由過程JsonConvert.DeserializeObject<Dictionary<string, string>>(ProductDetails)反序列化成字典聚集。
public void Main(string[] args) { var product = new Product(); product.ProductDetails = "{'size':'10', 'weight':'10kg'}"; foreach(var item in product.ProductDetailList) { Console.WriteLine(item.Key + " " + item.Value); } Console.Read(); }
創立Product實體,給product.ProductDetails屬性賦值,法式會主動完成轉換,如許我們便可以遍歷product.ProductDetailList,將響應的值拔出數據庫,或做其他處置。