写的不好,请大家见谅。

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;

}

(多对象)Json转换成List的更多相关文章

  1. json转换成对象

    在json转换成对象时,json的key会与java 类的字段一一对应.如果没有映射上的java字段会在该数据类型上填充默认值,如int 0,String null 等. 没有映射的json key在 ...

  2. 【Json】Jackson将json转换成泛型List

    Jackson将json转换成泛型List 获取泛型类型 /** * 获取泛型类型 * * @return */ protected Class<T> getGenericsType() ...

  3. json转换成dart类 JSON to Dart

    json_to_dart的使用 如果我们得到一个特别复杂的JSON,有时候会无从下手开始写Model,这时候就可以使用一些辅助工具.我认为json_to_dart是比较好用的一个.它可以直接把json ...

  4. java中String转换成json,json转换成String

    前置添加pom <!-- 配置gson --> <dependency> <groupId>com.google.code.gson</groupId> ...

  5. json转换成list map集合

    import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Set; i ...

  6. Json转换成DataTable

    今天看到Json转DataTable的例子,总结一下.... using System; using System.Collections; using System.Collections.Gene ...

  7. jackson把json转换成LIst

    把json数据转换成list ObjectMapper mapper = new ObjectMapper();  List<YeWuLuYou> readValue = mapper.r ...

  8. c# json转换成dynamic对象,然后在dynamic对象中动态获取指定字符串列表中的值

    using Newtonsoft.Json;using System;using System.Collections.Generic;using System.Linq;using System.T ...

  9. C# 后台json转换成时间格式

    1传入json 字符进行转换        public DateTime ConvertTime(string milliTime)        {            long timeTri ...

随机推荐

  1. 关于wtl的一个实验

    代码如下: #include <iostream> using namespace std; template<typename T> class Base { public: ...

  2. ORACLE 日志 logminer 使用

    1. logminer安装 SQL> @$ORACLE_HOME/rdbms/admin/dbmslm.sql Package created. Grant succeeded. Synonym ...

  3. ajax异步请求不能刷新数据的问题

    搞了两三天的问题,今天解决了.总结下: function reportGrpChange(cuid, title){ document.getElementById('reportFrameDiv') ...

  4. Cortex-M0 LPC1114中断优先级怎么设置

    LPC1114的中断,由中断控制模块NVIC控制.一共32个中断,每个中断的优先级可编程为 0~3 四种级别.级别越高对应的优先级越低.因此,级别0 是最高的中断优先级. 设置中断优先级的函数,CMI ...

  5. 以不同用户身份运行程序,/savecred只需要输入一次密码(GetTokenByName取得EXPLORER.EXE的令牌,然后调用CreateProcessAsUser,而且使用LoadUserProfile解决另存文件的问题)good

    http://blog.sina.com.cn/s/blog_65977dde0100s7tm.html ----------------------------------------------- ...

  6. Prime Path(素数筛选+bfs)

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9519   Accepted: 5458 Description The m ...

  7. 数据结构(树套树):ZJOI 2013 K大数查询

    有几个点卡常数…… 发现若第一维为位置,第二维为大小,那么修改时第一维修改区间,查询时第一维查询区间,必须挂标记.而这种情况下标记很抽象,而且Push_down不是O(1)的,并不可行. 那要怎么做呢 ...

  8. 图论(对偶图):COGS 470. [NOI2010]海拔

    470. [NOI2010]海拔 ★★★☆   输入文件:altitude.in   输出文件:altitude.out   简单对比 时间限制:2 s   内存限制:512 MB 海拔 [问题描述] ...

  9. 【解决办法】糟糕,我的电脑只有IE64位浏览器能上网,其他软件都上不了网

      最近两周在三班四班有5位同学电脑7次出现网络故障,表现为能连上锐捷.DNS正常却不能上网,其中在我自己的计算机上就发生了2次.上网搜集并整理了以下资料,供大家参考.请直接参见[解决办法]. [网上 ...

  10. 数学概念——J - 数论,质因数分解

    J - 数论,质因数分解 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit ...