C#中服務端接受前端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();
}

 

遍歷字典集合,能夠把數據保存到數據庫。json

相關文章
相關標籤/搜索