当前位置: 移动技术网 > IT编程>开发语言>c# > C#后台接受前台JSON字符串装换成字典集合处理

C#后台接受前台JSON字符串装换成字典集合处理

2019年07月18日  | 移动技术网IT编程  | 我要评论

一直以来,我们都是在服务端查询出结果生成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,将相应的值插入数据库,或做其他处理。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网