zoukankan      html  css  js  c++  java
  • 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();
    }

    遍历字典集合,可以把数据保存到数据库。

  • 相关阅读:
    图片的下方与父元素有间隙兼容性解决方案
    vscode 实用插件
    给网页title前面上图标
    网站换肤
    基于面向对象编程的设计模式
    点击获取验证码进行60秒倒计时
    JVM--内存模型与线程
    JVM学习--jvm监控和故障处理工具
    JVM--GC学习
    JVM--Java类加载机制
  • 原文地址:https://www.cnblogs.com/darrenji/p/5296221.html
Copyright © 2011-2022 走看看