json学习总结
来源:互联网 发布:小学生编程软件下载 编辑:程序博客网 时间:2024/05/16 01:17
关于JSON,一种字符串,JS中接触过一点,但没怎么用过,这次在做教务系统时,在U层传值时,要经常用到json,那么,它跟普通的string有什么区别呢?
JSON:轻量级的数据交换格式,主要用于与服务器进行交换,具有很高的效率,例如MongoDB中就是利用Json来进行存储数据的。总之,与XML类似,在跨平台数据传输上具有很强的优势!
以上是对JSON的一个简单的介绍,这里主要总结一下JSON是如何进行传值的!
一、格式:字符串的形式,有引号,本着JS中一切皆对象的原则,任何对象都可进行序列化,转换成JSON格式。
二、如何进行转换
1、常用样式
'{"name":wyy,"age":22}' //对象
'[2,3,"wyy"]' //数组
2、解析JSON对象提供了两个方法:eval()和stringify
三、传值
在平常的应用中,我们会经常利用JSON格式进行前后台的数据交换,单个的数据交换,利用Ajax是很容易实现的,利用键值对的形式即可。在这次使用的easyui中,也是JSON格式,提交表单时,直接用的FormCollection的方式,通过识别name进行传值,datagrid中则以JSON来接收数据源。
在这里总结一下从View中传递一个对象到Controller中如何进行接收,从Controller中传递一个实体,在JS中又如何进行取值的问题,当然,其实,在前一篇博客MVC传值中的哪几种传值方式已经很好的解决了这些问题,但是作为单独的传递实体问题,在这里还是要总结一下。
1、JS——Controller
JS:
var p = { name: "xiaohong", age: "22", sex:"女" }function TestObj() { $.ajax({ type: "POST", url: "/Person/TestObj", data: {'w': JSON.stringify(p)},//将JS对象进行序列化 success: function () { alert("成功了"); } })C:
using Newtonsoft.Json;
public Person TestObj() { //获取参数 string testData = Request.Form["w"]; //进行反序列化 Person p = (Person)JsonConvert.DeserializeObject(testData, typeof(Person)); return p; }
public class Person { public string name { get; set; } public string sex { get; set; } public int age { get; set; }// public override string ToString()// {// string s = string.Format(@"// name:{0} // age:{1} // sex:{2}", name,age,sex);// return s;// } }
在这里想要把从JS传过来的数据转换成定义的实体对象,需要我们引入微软提供的JSON转换工具,官方网站:http://json.codeplex.com/
在easyui的datagrid表格编辑时,运用的也是这个原理。
2、C——>JS
public string QueryInfo() { Person person=new Person (){ name="wyy", sex="女", age=22 }; return JsonConvert.SerializeObject(person); }JS:
function TestObj() { $.ajax({ type: "POST", url: "/Person/QueryInfo", success: function (data) { alert(data); alert('(' + data + ')') var objp=eval('(' + data + ')'); alert(objp.name); } }) }
这里运用的也是JSON转换工具,首先将定义的实体对象进行序列化,然后以JSON格式传到JS,然后再利用eval来进行转换成JS对象的格式,这样便可以取到具体的某个对象的属性值了。
小结:UI与后台交互中,传值是核心。原理要清楚,才能挖掘的更深!
- JSON学习总结
- JSON学习总结
- Json学习总结
- json-lib学习总结
- JSON学习总结
- JSON学习总结
- json lib 学习总结
- json学习总结
- json学习总结
- JSON学习总结
- Java学习总结--json
- json数据格式学习总结
- JSON学习总结
- Java JSON学习总结
- Json 学习总结
- JSON入门学习总结
- JavaScript-JSON学习总结
- JSON入门学习总结
- the difference between kernel stack and user stack
- 中国大学MOOC-翁恺-C语言程序习题第六周
- web server
- 2维快速距离算法(Fast_Distance_2D)的解释
- 顶级风投First Round Capital对创业者的30个建议
- json学习总结
- EJB3中JTA和RESOURCE_LOCAL的区别
- winform下利用chart显示ADC数据
- “像元分组” 算法:将二值图像中处于相邻的元素进行分组标号, 使得属于同一个分组的像元集合,其编号都相同
- 源自Google、Facebook、Netflix和Cisco的10款开源安全工具很值得回味
- 项目知识储备-自动属性 隐式类型Var
- c++编译器会为类添加那些成员函数
- mysql5.7备份数据库的命令
- uva11988 - Broken Keyboard (a.k.a. Beiju Text) 入门经典II 第六章数据结构基础 例题6-4