json学习总结

关于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与后台交互中,传值是核心。原理要清楚,才能挖掘的更深!

时间: 2024-10-22 14:16:14

json学习总结的相关文章

JSON 学习总结 <一>:什么是JSON

JSON的相关资料和博客很多,JSON无处不用,最近项目中一直要用到JSON,今天没有加班,就写下,算是对自己的总结,对JSON又一次深入的认识. 废话不多了,直接进入今天的主题: 如题:今天就介绍下什么是JSON,相信都知道了,但写东西和做事一样一样,得慢慢道来!!! <一>:什么是JSON: JSON:(JavaScript Object Notation)是一种优美的JavaScript对象创建方法.Json也是一种轻量级数据交换格式.JSON非常易于人阅读和编写, 同时利于机器解析与生

蜗牛—JSON学习之Java转化

最近,在写一个网站的后台管理,用到异步通讯技术,用的方法是JSON数据传送方式 需要下面几个jar文件 然后,自己写了一点点常用代码 Java的List和数组要用JSONArray对象 Map和实体用JSONObject package com.demo; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSO

[Network] HTML、XML和JSON学习汇总

写在前面:楼主也是刚刚接触这方面的知识,之前完全是零基础,后来经朋友推荐了几个不错的博文,看完以后豁然开朗.但是此博文更加偏重于基础知识介绍(其实更深的楼主也还不了解,这方面的大神请绕道),只是分享个人的一个学习总结.希望那些跟我一样,在实验室闷头搞科研,一出门实习完全一头雾水的同僚们可以借鉴:好多东西并没有我们想想的那么复杂,只要你肯学,迈出第一步,你就成功了一大半.与大家共勉! 好了,想花时间接着往下看的博友们,我们可以步入正题了. 1. HTML语言 首先,先简单的提及一下超文本标记语言H

HTML、XML和JSON学习汇总

1. HTML语言 2. XML语言 2.1 XML的特点 2.2 XML与HTML的主要差异: 2.3 XML允许自定义标签 2.4 XML的解析 3. JSON语言 3.1 JSON的语法规则 3.2 如何使用JSON? 3.3 XML和JSON对比 写在前面:楼主也是刚刚接触这方面的知识,之前完全是零基础,后来经朋友推荐了几个不错的博文,看完以后豁然开朗.但是此博文更加偏重于基础知识介绍(其实更深的楼主也还不了解,这方面的大神请绕道),只是分享个人的一个学习总结.希望那些跟我一样,在实验室

Json学习整理

1:javascript对JSON的支持 2:java对JSON的支持 alibaba->fastjson 封装工具类: 1 import com.alibaba.fastjson.JSONObject; 2 3 public class JSONBuilder { 4 JSONObject json = new JSONObject(); 5 6 public JSONBuilder put(String key, Object value) { 7 json.put(key, value);

ajax json 学习笔记

json = { } JSON 字符串必须使用双引号,单引号会出现错误 三种类型: 简单值:字符串.数值.布尔值.null 对象:无序的键值对儿 数组:有序的值列表 解析:JSON.eval()   //最早期   会执行恶意代码 不建议使用  JSON.stringify();  // 转化成 json 对象  JSON.parse();   // 转化成JS对象 object 解析 JSON  需要大写 //js对象 var book = { title:"javascript",

JSON学习

SON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 * JSON 具有自我描述性,更易理解 JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台.JSON 解析器和 JSON 库支持许多不同的编程语言. 这个 employee 对象是包含 3 个员工记录(对象)的数组. { "employees": [ { "firstN

JSON学习笔记(总结自w3school)

1. JSON是一种文本. 2. JSON即JavaScript Object Notation(JavaScript对象表示法). JSON用来存储和交换文本信息. JSON比xml更小, 更快, 更容易解析. 3. JSON文本格式在语法上与创建JS对象相同, 由于这个原因, JS能够无需JSON解析器, 使用内建的eval()函数, 用JSON生成JS对象. 4. JSON语法: JSON名/值对必须写在大括号里面. JSON值可以是: 数字(整数或浮点数) 字符串(在双引号中) 逻辑值(

Json学习笔记

JSON模块为序列化和反序列化模块,通过JSON,可以将列表.无序字典转换成字符串形式,从而实现序列化.同时可以将字符串反序列化成列表.字典.这两种转换分别对应的是json.dumps(),和json.loads().有一点值得注意的是,python以外的其他语言,基本上都是将双引号中的内容作为字符串看待,只有python不区分单引号与双引号,因此为了实现跨平台(语言平台),使用数据,我们在使用Python的JSON模块时,一定要记得使用双引号.如果是使用的json.dump(),则是实现了两步

Ajax+JSON学习笔记(二)

来源:http://www.imooc.com/learn/250 readyState属性 0:请求未初始化,open还没有调用 1:服务器连接已建立,open已经调用了 2:请求已接受,也就是接收到头信息了 3:请求处理中,也就是接收到响应主体了 4:请求已完成,且响应已就绪,也就是响应完成了 通过监听readyState属性的变化,就可以判断服务器的响应成功与否 var request = new XMLHttpRequest(); request.open("GET",&quo