剑客
关注科技互联网

.net 字符串和JSON格式的互换

版权声明:此文章转载自_infocool

原文链接;http://www.infocool.net/kb/ASP/201610/198964.html

如需转载请联系听云College团队成员小尹 邮箱:yinhy#tingyun.com

近期又做了个问卷调查,问卷调查一次性要保存一二十个题目和答案!所以嘞,博主为了偷懒,就直接把答卷内容保存成了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": "选博主"
}

.net 字符串和JSON格式的互换

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

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

.net 字符串和JSON格式的互换

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

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

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

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

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

好好好,闲言少叙,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    欢迎骚扰,不报警的,也不会怀孕的!真的,加了的人都知道!

想阅读更多技术文章,请访问听云技术博客,访问听云官方网站感受更多应用性能优化魔力。

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址