.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 欢迎骚扰,不报警的,也不会怀孕的!真的,加了的人都知道!
谢谢!
本文来自博客园,作者:LI小白,转载请注明原文链接:https://www.cnblogs.com/LittleBai/p/5953919.html