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,將響應的值拔出數據庫,或做其他處置。