你的位置:首页 > ASP.net教程

[ASP.net教程].net 字符串和JSON格式的互换


近期又做了个问卷调查,问卷调查一次性要保存一二十个题目和答案!所以嘞,博主为了偷懒,就直接把答卷内容保存成了Json格式!

好处当然是很多啦! 只需一个字段就能保存整个答卷的内容! 想想都刺激!哈哈~!

好了,闲话少叙,直入正题!

首先,一般不会保存题目,要求的可能是只保存答案!比如第几题对应的调查者选的是什么答案等等!

先声明一个题目类Expreience,当然,你如果想连题目一起加上的话,你可以多声明几个字段嘛,是吧!

代码如下:

 public class Expreience {   public string exp1 { get; set; }   public string exp2 { get; set; }   public string exp3 { get; set; }   public string exp4 { get; set; }   public string exp5 { get; set; }   public string exp6 { get; set; }   public string exp7 { get; set; }   public string exp8 { get; set; }   public string exp9 { get; set; }   public string exp10 { get; set; } }  

 欧克,现在我有十道题,从上面的代码就能看粗来!废话连篇,满脸嫌弃,哼哼哼~!

好吧,精神分裂患者!

声明好了题目类,接下来该把字符串改成Json格式了,注意哈!!!不要走神!

你快点儿吧,啰嗦!

好吧,现在来看下转化代码:

Hashtable hash = new Hashtable();hash["exp1"] = "选A"; hash["exp2"] = "选博主";hash["exp3"] = "回去好好养着";hash["exp4"] = "小白";hash["exp5"] = "去捡过来";hash["exp6"] = "小白";hash["exp7"] = "去给粑粑的鞋叼过来";hash["exp8"] = "小白";hash["exp9"] = "赏你根骨头";hash["exp10"] = "旺旺旺";JavaScriptSerializer ser = new JavaScriptSerializer(); 
string ansJsonStr = ser.Serialize(hash);

 

 

声明Hashtable类,以键值对的形式存储每道题对应的值,然后转换成Json字符串;切记:hash["exp1"]中的exp1要和题目类Expreience中的exp1对应起来!

记得引用:

using System.Web.Script.Serialization;using System.Collections;

 

好了,就这么简单,看看转换后的格式:

{  "exp4": "小白",  "exp9": "赏你根骨头",  "exp6": "小白",  "exp1": "选A",  "exp3": "回去好好养着",  "exp8": "小白",  "exp5": "去捡过来",  "exp10": "旺旺旺",  "exp7": "去给粑粑的鞋叼过来",  "exp2": "选博主"}

呃呃呃。。。虽是没按顺序转换,但绝对是正确滴! 好尴尬呀!!!这破机器~!呵呵呵...

好了,来看下数据库保存的状况:

好神奇哟,真是一个字段存储的啊!让你装逼,看看你怎么取值,哼哼~!

取值?哎呀,我好怕呀!难倒我了哟!!!哈哈哈,逗你玩儿!

欧克,现在来说说,如何将这段字符串再转化成可以随意取值的类型,方便我们取任何一道题的值!

能装进去,肯定就能释放粗来呀!你看着吧!哈哈~

少啰嗦,快点儿!不讲的话,尿点儿就来了!

好好好,闲言少叙,Go On!!!

转换回来其实也很简单的,上代码:

 public Expreience GetData(string jsonStr) {   return (Expreience)Newtonsoft.Json.JsonConvert.DeserializeObject(jsonStr, typeof(Expreience)); }

 

好了,转换好了! 什么?怎么用?这都不会,真是够笨的!好吧,继续》》》

 public string GetDataToString(string jsonStr)   {    if (string.IsNullOrEmpty(jsonStr))      return "";    Expreience strtemp = GetData(jsonStr);    string dataTemp = "第1题:" + strtemp.exp1 +             "第2题:" + strtemp.exp2 +              "第3题:" + strtemp.exp3 +             "第4题:" + strtemp.exp4 +              "第5题:" + strtemp.exp5 +              "第6题:" + strtemp.exp6 +             "第7题:" + strtemp.exp7 +             "第8题:" + strtemp.exp8 +             "第9题:" + strtemp.exp9;    return dataTemp;  }

 

好了,按顺序取值了!

就这么简单!嗯嗯嗯!

 

拙文一篇,忘各位赐教!

讨论群: 225443677    欢迎骚扰,不报警的,也不会怀孕的!真的,加了的人都知道!

 

谢谢!