我們是否可以把從前端接受的JSON字元串轉換成字典集合呢?比如從前端接收:{'size':'10', 'weight':'10kg'}在服務端轉換成:[{size:"10"},{weight:"10kg"}]這樣的字典集合通過Newtonsoft的DeserializeObject<Dictiona
我們是否可以把從前端接受的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(); }
遍歷字典集合,可以把數據保存到資料庫。