近期又做了个问卷调查,问卷调查一次性要保存一二十个题目和答案!所以嘞,博主为了偷懒,就直接把答卷内容保存成了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    欢迎骚扰,不报警的,也不会怀孕的!真的,加了的人都知道!

谢谢!

.net 字符串和JSON格式的互换的更多相关文章

  1. 如何识别一个字符串是否Json格式

    前言: 距离上一篇文章,又过去一个多月了,近些时间,工作依旧很忙碌,除了管理方面的事,代码方面主要折腾三个事: 1:开发框架(一整套基于配置型的开发体系框架) 2:CYQ.Data 数据层框架(持续的 ...

  2. List转换成json格式字符串,json格式字符串转换成list

    一.List转换成json字符串 这个比较简单,导入gson-x.x.jar, List<User> users = new ArrayList<User>(); Gson g ...

  3. JS实现的一个query字符串转Json格式数据的方法

    输入字符串的格式是 a=1&b=2&c=3 $.par2Json = function (string, overwrite) { var obj = {}, pairs = stri ...

  4. JavaScript中,JSON格式的字符串与JSON格式的对象相互转化

    前言:JSON是一个独立于任何语言的数据格式,因此,严格来说,没有“JSON对象”和“JSON字符串”这个说法(然而”菜鸟教程“和”W3school“使用了“JSON对象”和“JSON字符串”这个说法 ...

  5. js实现字符串转JSON格式

    在浏览器前端实现字符串转JSON格式,有多种方法,总结如下: 方法1. js函数,eval() 语法: var obj = eval ("(" + txt + ")&qu ...

  6. 关于C# webapi ,接口返回字符串和json格式 ,返回值中有反斜杠

    最近遇到一个比较郁闷的问题,记录一下 写了一个接口,想返回json 数据,但是返回值中总是带有反斜杠... ,下面来看原因 首先,配置 webapi的路由 App_Start 文件夹下 ,WebApi ...

  7. 字符串转换json格式

    前台json转字符串传递后台时 用到: data: JSON.stringify({ "zh": zhanghao, "mm": mima }), 当后台返回前 ...

  8. js字符串转json格式与json对象转字符串

    json字符串----->json对象json对象------>json字符串 使用JSON.parse()函数 this.dataList = JSON.parse(dataList); ...

  9. JavaScript 字符串转json格式

    第一种:浏览器支持的转换方式(Firefox,chrome,opera,safari,ie)等浏览器: JSON.parse(jsonstr); //可以将json字符串转换成json对象 JSON. ...

随机推荐

  1. 广东IP段列表

    广东IP段列表219.137.240.0 219.137.240.255219.137.148.0 219.137.150.255 广东省广州市 电信ADSL219.137.144.0 219.137 ...

  2. 工作总结 使用html模板发邮件 前面空一大块

    HTML邮件的本质其实是发送了一个html页面.邮件的空白必然是页面的空白,所以你要找到你发送邮件的html模板所在,然后去掉空白即可,如果这是一个公共文件,需要注意你往往用的只是你的部分,很大程度还 ...

  3. JavaSE----API之集合(Collection、List及其子类、Set及其子类、JDK1.5新特性)

    5.集合类 集合类的由来: 对象用于封装特有数据,对象多了须要存储:假设对象的个数不确定.就使用集合容器进行存储. 集合容器由于内部的数据结构不同,有多种详细容器.不断的向上抽取,就形成了集合框架. ...

  4. C语言将10进制转为2进制

    第一种方法: #include<stdio.h> void dectobin(int n); int main() { int x=0; scanf("%d",& ...

  5. 自定义实现JavaScript的Map对象,修改IE不兼容MAP()的问题

    由于IE8及以下版本不支持Map对象,本文为程序猿们提供了有效的解决方法. 本文重写了Map对象,实现了常用的set, get, put, clear, remove, delete, forEach ...

  6. 2016/05/10 thinkphp 3.2.2 ①系统常量信息 ②跨控制器调用 ③连接数据库配置及Model数据模型层 ④数据查询

    [系统常量信息] 获取系统常量信息: 如果加参数true,会分组显示: 显示如下: [跨控制器调用] 一个控制器在执行的时候,可以实例化另外一个控制,并通过对象访问其指定方法. 跨控制器调用可以节省我 ...

  7. make运行阶段划分

    1 make执行分为两个阶段 第一个阶段:读makefile并且建树阶段 第二个阶段:构建目标阶段 2 扩展的立即和推迟 在第一个阶段的扩展是立即,在第二个阶段或者在需要的时候再扩展是推迟,这里的需要 ...

  8. iptraf 网卡 ip 端口 监控 netstat 关闭端口方法

    18 commands to monitor network bandwidth on Linux server – BinaryTides https://www.binarytides.com/l ...

  9. YTU 1010: 目标柏林

    1010: 目标柏林 时间限制: 1000 Sec  内存限制: 64 MB 提交: 32  解决: 15 题目描述 1945年初,苏军和英美联军已从东西两面攻入德国国境. 4月初,在苏军和英美联军的 ...

  10. HTTP网络请求原理 (三) 简单模拟HTTP服务器

    HTTP实际上是基于TCP的应用层协议,它在更高的层次封装了TCP的使用细节,是网络请求操作更为易用. TCP连接是因特网上基于流的可靠连接,它为HTTP提供了一条可靠的比特传输管道. 从TCP连接一 ...