首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

json反序列化失败,该怎么处理

2012-05-15 
json反序列化失败定义一个类public class CREC{public int ipublic string spublic DataTable dt}SqlCo

json反序列化失败
定义一个类
public class CREC
  {
  public int i;
  public string s;
  public DataTable dt;
  }




SqlConnection conn = new SqlConnection("Server=127.0.0.1;database=test ;uid=sa;pwd=");
  SqlCommand cmd = new SqlCommand("select * from t1", conn);
  SqlDataAdapter adapter = new SqlDataAdapter(cmd);
  DataSet ds = new DataSet();
  DataTable dt=new DataTable();
  adapter.Fill(dt);
  ds.Tables.Add(dt);
   

  CREC rec = new CREC();
  rec.i = 10;
  rec.s = "abc";
  rec.dt = dt.Copy();

  string sJSON = JsonConvert.SerializeObject(rec);
  MessageBox.Show(sJSON);

  //这里反序列化失败
  CREC recOut = JsonConvert.DeserializeObject<CREC>(sJSON);

[解决办法]

C# code
        /// <summary>        /// Serialize object to string of json format        /// </summary>        private string JsonSerializer<T>(T t)        {            var ser = new DataContractJsonSerializer(typeof(T));            var ms = new MemoryStream();            ser.WriteObject(ms, t);            string jsonString = Encoding.UTF8.GetString(ms.ToArray());            ms.Close();            return jsonString;        }        /// <summary>        /// Deserialize string of json format to object        /// </summary>        private T JsonDeserialize<T>(string jsonString)        {            var ser = new DataContractJsonSerializer(typeof(T));            var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));            var obj = (T)ser.ReadObject(ms);            return obj;        }
[解决办法]
不懂帮顶! 我记得看过一些视频 如果转换出现问题最好转换成数组之后再序列化 具体什么情况忘记了。。

热点排行