C#后臺接受前臺JSON字符串裝換成字典集合處理
一直以來,我們都是在服務端查詢出結果生成JSON字符串,供前端調(diào)用,那么我們能否把從前端接受的JSON字符串轉(zhuǎn)換成字典集合,讓后臺處理呢?
比如從前端接收:{'size':'10', 'weight':'10kg'}
在服務端轉(zhuǎn)換成:[{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字符串是否可以被轉(zhuǎn)換,如果不行就拋異常。通過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();
}
創(chuàng)建Product實體,給product.ProductDetails屬性賦值,程序會自動完成轉(zhuǎn)換,這樣我們就可以遍歷product.ProductDetailList,將相應的值插入數(shù)據(jù)庫,或做其他處理。
相關文章
C# WinForm控件對透明圖片重疊時出現(xiàn)圖片不透明的簡單解決方法
這篇文章主要介紹了C# WinForm控件對透明圖片重疊時出現(xiàn)圖片不透明的簡單解決方法,結合實例形式分析了WinForm圖片重疊后造成圖片不透明的原因與相應的解決方法,需要的朋友可以參考下2016-06-06
C#使用遠程服務調(diào)用框架Apache Thrift
這篇文章介紹了C#使用遠程服務調(diào)用框架Apache Thrift的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06

