(多对象)Json转换成List

写的不好,请大家见谅。

1.Json 格式
{"packages":[{“type”:”aaa”}],"zone_packages":[{"tickettype":[{"ticket_type":"111","ticket_count":"1","trans_num":null,"refund_num":null}],"zone_group":"武汉园博会","ticket_key":"1753626040"}],"order_nbr":"30000000012015090800006524","order_amount":"","order_nbr_original":"150908050106992","order_contacts":"仲秀萍","contacts_tel":"15821311320","order_remark":"","use_date":"20150909","order_status":"8"}

2.定义扩展方法
/// <summary>拆分字符串成为名值字典</summary>
        /// <param name="str">要分割字符串的</param>
        /// <param name="nameValueSeparator">键值对的分隔符</param>
        /// <param name="separators">分割字符</param>
        /// <returns>键值对字典</returns>
        public static IDictionary<String, String> SplitAsDictionary(this String str, String nameValueSeparator = "=", params String[] separators)
        {
            var dic = new Dictionary<String, String>();
            if (String.IsNullOrWhiteSpace(str)) return dic;

            if (String.IsNullOrEmpty(nameValueSeparator)) nameValueSeparator = "=";
            if (separators == null || separators.Length < 1) separators = new String[] { ",", ";" };

            String[] ss = str.Split(separators, StringSplitOptions.RemoveEmptyEntries);
            if (ss == null || ss.Length < 1) return null;

            foreach (var item in ss)
            {
                Int32 p = item.IndexOf(nameValueSeparator);
                // 在前后都不行
                if (p <= 0 || p >= item.Length - 1) continue;

                String key = item.Substring(0, p).Trim();
                dic[key] = item.Substring(p + nameValueSeparator.Length).Trim();
            }

            return dic;
        }

3.Json格式解析
public static object ZoneTicket(string json)
        {
            var doc = json;
            //json格式解析
            var dicList = doc.Split(new String[] { "\"zone_packages\":[", "\"packages\":[", "\"tickettype\":[", "}]" }, StringSplitOptions.None)
                //对每个大类处理,先过滤,再分割为子类
                             .Select(n => n.Replace("\"", "").Split(new String[] { "},{" }, StringSplitOptions.None)
                                 .Select(k => k.Replace("{", "").Replace("}", "")//对子类过滤
                                      .SplitAsDictionary(":", ","))//提取子类的键值对
                                      .ToArray()).ToList();//列表 
            return dicList;

        }

***************************************

 农家上品淘宝店主营:枸杞、阿胶枣、枣加核桃、沧州小枣、新疆特产。本店开业时间不长,现赔本赚信誉,走过路过不要错过喽!店铺地址:http://nongjiashangpin.taobao.com 

转载于:https://www.cnblogs.com/lpfblog/p/5414185.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值