hello world!!!!!

写下自己的一些心得,写下自己问题的方式,写下程序之路的艰辛,希望能够有朝一日成为大牛。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

反序列化网易miniblog json格式数据 原创 create by lee

Posted on 2010-11-04 17:29  陈力  阅读(265)  评论(0编辑  收藏  举报

     我写这篇文章是在于自己热于发现一些解决问题的新方式,通常我在分析json格式的数据,喜欢用正则,但往往不够理想 可能正则水平也不到位吧。呵呵。

 首先拿到数据源

代码
public  class ooojj
    {

        
public userObj user { getset; } //对象
        public string is_retweet { getset; }
        
public string retweet_count { getset; }
        
public string retweet_followed_count { getset; }
        
public string favorited { getset; }
        
public Tl timeline { getset; } //对象
        public string rootReplyCount { getset; }
        
public string rootReplyUserName { getset; }
        
public string rootReplyText { getset; }
        
public string rootReplyTruncated { getset; }
        
public string rootReplySource { getset; }
        
public string rootReplyCreatedAt { getset; }
        
public string rootReplyRetweetCount { getset; }
        
public string rootReplyUserScreenName { getset; }
        
public RootActive rootActivityIcon { getset; } //对象
        public string id { getset; }
        
public string source { getset; }
        
public string created_at { getset; }
        
public string text { getset; }
        
public string truncated { getset; }
        
public string rootReplyId { getset; }


    


    }

 

 

  public class RootActive
    {
        
public string isLantern1 { getset; }
        
public string isLantern2 { getset; }
        
public string isLantern3 { getset; }

    }

 

 

 public class Tl
    {
        
public string  Name {get;set;}
        
public string time{get;set;}
    }

 

代码
 public class userObj
    {
        
public string name{get;set;}
        
public string id{get;set;}
        
public string profile_image_url{get;set;}
        
public string screen_name{get;set;}
        
public string profile_image_url_large{get;set;}
        
public string profile_image_url_small{get;set;}
     
//   public string name{get;set;}

    }

这个四个实体是用来装载他这个网易json格式的实体。 建议用http analyze工具分析它的格式,原理先分析它的json基础结构,构成装载模型,然后反序列化装载。

代码
/// <summary>
        
/// 将 JSON 转换为对象
        
/// </summary>
        
/// <typeparam name="T"></typeparam>
        
/// <param name="s"></param>
        
/// <returns></returns>
        public static T FromJson<T>(this string s)
        {
            var serializer 
= new JavaScriptSerializer();
            
return serializer.Deserialize<T>(s);
        }

 

 

最后调用你所代码,实现你的结果

  string content = FileHelper.ReadFile(@"\TextFile1.txt");
           List<ooojj> list=  JsonUtility.FromJson<List<ooojj>>(content);