首页 > Web开发 > 详细

JSON相关代码

时间:2014-07-17 21:24:59      阅读:414      评论:0      收藏:0      [点我收藏+]
 
bubuko.com,布布扣
string json1 = @"{
              ""publicaccount"": {
                ""id"": ""1"",
                ""name"": ""abc""
              },
              ""root"": {
                ""messages"": [
                  {
                    ""id"": ""1"",
                    ""title"": ""messagetitle1"",
                    ""content"": ""helloworld"",
                    ""url"": ""http://web.abc""
                  },
                  {
                    ""id"": ""2"",
                    ""title"": ""messagetitle2"",
                    ""content"": """",
                    ""url"": ""http://web.abc/portal/hldjh/201404/t20140423_73322.htm""
                  }
                ]
              }
            }";
JSON string
bubuko.com,布布扣
    /// <summary>  
    /// DataTable 转换为List 集合  
    /// </summary>  
    /// <typeparam name="TResult">类型</typeparam>  
    /// <param name="dt">DataTable</param>  
    /// <returns></returns>  
    public static List<TResult> ToList<TResult>(DataTable dt) where TResult : class, new()
    {
        //创建一个属性的列表  
        List<PropertyInfo> prlist = new List<PropertyInfo>();
        //获取TResult的类型实例  反射的入口  
        Type t = typeof(TResult);
        //获得TResult 的所有的Public 属性 并找出TResult属性和DataTable的列名称相同的属性(PropertyInfo) 并加入到属性列表  
        Array.ForEach<PropertyInfo>(t.GetProperties(), p => { if (dt.Columns.IndexOf(p.Name) != -1) prlist.Add(p); });
        //创建返回的集合  
        List<TResult> oblist = new List<TResult>();

        foreach (DataRow row in dt.Rows)
        {
            //创建TResult的实例  
            TResult ob = new TResult();
            //找到对应的数据  并赋值  
            prlist.ForEach(p => { if (row[p.Name] != DBNull.Value) p.SetValue(ob, row[p.Name], null); });
            //放入到返回的集合中.  
            oblist.Add(ob);
        }
        return oblist;
    }
DataTable->List
bubuko.com,布布扣
var result = from account in db.PublicAccount.ToList()
                         where account.Name.Contains(keyword)
                         select account;
            result = result.ToList();
            JObject json = new JObject(
                new JProperty(
                    "accounts",
                    new JArray(//帐号数组
                        result.Select(
                        r =>
                        new JObject(//账号对象
                            new JProperty(
                                "id", r.ID
                                ),
                                new JProperty(
                                "name", r.Name
                                ),
                                new JProperty(
                                "desc", r.Desc
                                )
                                )
                                )
                                )
                                )
                                );
Linq JSON

JSON相关代码,布布扣,bubuko.com

JSON相关代码

原文:http://www.cnblogs.com/yy2056/p/3851608.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!