1)Json基础
2)Json 字符串和Json对象
3)应用例子
4)JsonHelper

1)Json 基础
JSON中对象通过"{}"来标识,一个"{}"代表一个对象,如{"AreaId":"123"},
对象的值是键值对的形式(key:value)。
 "[]",标识数组,数组内部各个数据之间通过","分割,如["AreaId":"123","AreaId":"345"]。
很多情况下是对象数组,那就是这样: [{"AreaId":"123"},{"AreaId":"345"}]
数组也是一个对象: {"Area":[{"AreaId":"123"},{"AreaId":"345"}]} 这表示一个Area对象,
他有两个子数据,每个子数据也是一个对象,每个子对象都是AreaId。
2)Json字符串和Json对象
json字符串:Var strJSON = "{"Area":[{"AreaId":"123"},{"AreaId":"345"}]}",
其实也可以写成这样:Var strJSON = ‘{"Area":[{"AreaId":"123"},{"AreaId":"345"}]}',
这表示一个JSON字符串,由于在Js中单引号和双引号都可以表示一个字符串,所以上面第一个使用双引号和第二个使用单引号的都表示一个JSON字符串。
字符串的时候就要用eval转化成jquery对象,代码如下:
var arr = '{"red":{"id":1,"name":"mary"},"blue":{"id":2,"name":"u71d5u5b50"}}';
var dataObj = eval("("+arr+")");//转换Json对象
$.each(dataObj,function(idx,item){
//输出
alert(item.id+"哈哈"+item.name);
})
Json对象:Var JSON = {"Area":[{"AreaId":"123"},{"AreaId":"345"}]},JSON对象最外面是没有单引号或者双引号的,这就表示一个JSON对象。
Json对象不需要转化,代码如下:
var arr = {"red":{"id":1,"name":"mary"},"blue":{"id":2,"name":"u71d5u5b50"}};
$.each(arr,function(idx,item){
//输出
alert(item.id+"哈哈"+item.name);
})
3)应用例子
前台JS:将传递过来的数据直接解析为json数据,也就是说这里的前台js代码可能直接把这些数据解析成json对象数据,而并非字符串数据,
如data[0].demoData,这里就直接使用了这个json对象数据。
$.ajax({
type: "post",
url: "Default.aspx",
dataType: "json",
success: function (data) {
alert(data[0].demoData);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});

后台代码:

<span style="white-space: pre;">			</span>Response.Clear();
Response.Write("[{"demoData":"This Is The JSON Data"}]");
Response.Flush();
Response.End();

  

4)JsonHelper应用

   public class UserClass
    {
        public string Name { set; get; }
        public string sex { set; get; }
    }  
//应用
        public string MyAjax2(string val1)
        {
                var strJSON = "[{\"name\":\"name1\",\"sex\":\"man\" },{\"name\":\"name2\",\"sex\":\"woman\" }]";
                List<UserClass> list =  DeserializeUserList(strJSON);
                foreach (var item in list)
                {
                    var name=item.name;
<span style="white-space:pre">		</span>  var sex=item.sex;
                }
            return "ok";
        }
//直接将Json转化为实体对象
public List<UserClass> DeserializeUserList(string json)
{
var u = JsonHelper.JSONToObject<List<UserClass>>(json);
return u;
}

//JsonHelper.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;
using System.Data; namespace MvcAspxMovie.Models
{ /// <summary>
/// JSON帮助类
/// </summary>
public class JsonHelper
{
/// <summary>
/// 对象转JSON
/// </summary>
/// <param name="obj">对象</param>
/// <returns>JSON格式的字符串</returns>
public static string ObjectToJSON(object obj)
{
JavaScriptSerializer jss =new JavaScriptSerializer();
try
{
return jss.Serialize(obj);
}
catch(Exception ex)
{
throw new Exception("JSONHelper.ObjectToJSON(): "+ ex.Message);
}
} /// <summary>
/// 数据表转键值对集合 www.2cto.com
/// 把DataTable转成 List集合, 存每一行
/// 集合中放的是键值对字典,存每一列
/// </summary>
/// <param name="dt">数据表</param>
/// <returns>哈希表数组</returns>
public static List<Dictionary<string,object>>DataTableToList(DataTable dt)
{
List<Dictionary<string,object>> list
=new List<Dictionary<string,object>>(); foreach(DataRow dr in dt.Rows)
{
Dictionary<string,object> dic =new Dictionary<string,object>();
foreach(DataColumn dc in dt.Columns)
{
dic.Add(dc.ColumnName, dr[dc.ColumnName]);
}
list.Add(dic);
}
return list;
} /// <summary>
/// 数据集转键值对数组字典
/// </summary>
/// <param name="dataSet">数据集</param>
/// <returns>键值对数组字典</returns>
public static Dictionary<string,List<Dictionary<string,object>>>DataSetToDic(DataSet ds)
{
Dictionary<string,List<Dictionary<string,object>>> result =new Dictionary<string,List<Dictionary<string,object>>>(); foreach(DataTable dt in ds.Tables)
result.Add(dt.TableName,DataTableToList(dt)); return result;
} /// <summary>
/// 数据表转JSON
/// </summary>
/// <param name="dataTable">数据表</param>
/// <returns>JSON字符串</returns>
public static string DataTableToJSON(DataTable dt)
{
return ObjectToJSON(DataTableToList(dt));
} /// <summary>
/// JSON文本转对象,泛型方法
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="jsonText">JSON文本</param>
/// <returns>指定类型的对象</returns>
public static T JSONToObject<T>(string jsonText)
{
JavaScriptSerializer jss =new JavaScriptSerializer();
try
{
return jss.Deserialize<T>(jsonText);
}
catch(Exception ex)
{
throw new Exception("JSONHelper.JSONToObject(): "+ ex.Message);
}
} /// <summary>
/// 将JSON文本转换为数据表数据
/// </summary>
/// <param name="jsonText">JSON文本</param>
/// <returns>数据表字典</returns>
public static Dictionary<string,List<Dictionary<string,object>>>TablesDataFromJSON(string jsonText)
{
return JSONToObject<Dictionary<string,List<Dictionary<string,object>>>>(jsonText);
} /// <summary>
/// 将JSON文本转换成数据行
/// </summary>
/// <param name="jsonText">JSON文本</param>
/// <returns>数据行的字典</returns>
public static Dictionary<string,object>DataRowFromJSON(string jsonText)
{
return JSONToObject<Dictionary<string,object>>(jsonText);
}
} }

MVC4:ajax Json 应用的更多相关文章

  1. 基于MVC4+EF5.0+Ajax+Json+CSS3的简单注册页面(get&post)

    使用mvc4可以很快速的创建页面,但封装的过多,难免会有些性能上的问题.所以基于此,通过使用简单的手写html,加ajax,json来创建一个注册页面,会比较干净,简洁. 本项目的环境是MVC4+EF ...

  2. 如何构建ASP.NET MVC4&JQuery&AJax&JSon示例

    背景: 博客中将构建一个小示例,用于演示在ASP.NET MVC4项目中,如何使用JQuery Ajax. 步骤: 1,添加控制器(HomeController)和动作方法(Index),并为Inde ...

  3. 如何构建 MVC&AJax&JSon示例

    背景: 博客中将构建一个小示例,用于演示在ASP.NET MVC4项目中,如何使用JQuery Ajax. 直接查看JSon部分 步骤: 1,添加控制器(HomeController)和动作方法(In ...

  4. struts2 + ajax + json的结合使用,实例讲解

    struts2用response怎么将json值返回到页面javascript解析,这里介绍一个struts2与json整合后包的用法. 1.准备工作 ①ajax使用Jquery:jquery-1.4 ...

  5. AJAX,JSON搜索智能提示

    效果 开发结构参考AJAX,JSON用户校验 主要有两个核心文件 1,处理输入字符,进行后台搜索的servlet Suggest.java package org.guangsoft.servlet; ...

  6. php ajax json jquery 记录

    php+jquery+ajax+json简单小例子 <html> <title>php+jquery+ajax+json简单小例子</title> <?php ...

  7. 练习 jquery+Ajax+Json 绑定数据 分类: asp.net 练习 jquery+Ajax+Json 绑定数据 分类: asp.net

    练习 jquery+Ajax+Json 绑定数据

  8. Jquery+ajax+json+servlet原理和Demo

    Jquery+ajax+json+servlet原理和Demo 大致过程: 用户时间点击,触发js,设置$.ajax,开始请求.服务器响应,获取ajax传递的值,然后处理.以JSON格式返回给ajax ...

  9. 玩转Web之Json(一)-----easy ui+ajax + json 中关于Json的解析问题

    在easy ui中使用Ajax+Json实现前后的数据交互时,当后台数据传输到客户端是需对Json数据进行解析,这里将对Json数据解析做简单总结. (一) 对于服务器返回的数据若没有做类型说明,需要 ...

随机推荐

  1. 使用Docker部署Spring-Boot+Vue博客系统

    在今年年初的时候,完成了自己的个Fame博客系统的实现,当时也做了一篇博文Spring-boot+Vue = Fame 写blog的一次小结作为记录和介绍.从完成实现到现在,也断断续续的根据实际的使用 ...

  2. 利用中转输出表制作HijackDll

    [原创]利用中转输出表制作HijackDll(附工具源码)作 者: baixinye时 间: 2012-08-05,16:48:45链 接: http://bbs.pediy.com/showthre ...

  3. 关于微信小程序 modal弹框组件的介绍

    微信小程序 modal: 这里对微信小程序中 modal组件进行详细解析,我想开发微信小程序的小伙伴可以用到,这里小编就记录下modal的知识要点. modal modal类似于javascript中 ...

  4. 3.css3中多个背景图片的用法

    (background-clip裁剪,background-position位置,background-origin定位,background-repeat是否重复) <!DOCTYPE htm ...

  5. 基于Kintex Ultrasacle的万兆网络光纤 PCIe加速卡416 光纤PCIe卡

    基于Kintex Ultrasacle的万兆网络光纤 PCIe加速卡 一.产品概述 本卡为企业级别板卡,可用于数据中心,安全领域数据采集处理.标准PCI Express全高板,适用于普通服务器.工作站 ...

  6. blazeFace

    围绕四个点构造模型 1.扩大感受野 使用5*5卷积替换3*3来扩大感受野,在深度分离卷积中,pw与dw计算比为d/k^2,d为输出通道,k为 dw的卷积核,即增加dw的卷积核所带来的计算并不大. 在M ...

  7. 10年前文章_respin 下制作iso 文件的脚本说明

    1.prepare_spin.sh 用于在 /var/rpm 下生成  lhs-local 需要的repositery 2.respin.sh 使用revisor 生成 iso 3. post_spi ...

  8. Flask【第1篇】:Flask介绍

    Flask入门 一.Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来) Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Wer ...

  9. Django【第6篇】:Django之ORM单表操作(增删改查)

    django之数据库表的单表查询 一.添加表记录 对于单表有两种方式 # 添加数据的两种方式 # 方式一:实例化对象就是一条表记录 Frank_obj = models.Student(name =& ...

  10. 【NOIP2013模拟联考6】选课

    题目 你真的认为选课是那么容易的事吗?HYSBZ的ZY同志告诉你,原来选课也会让人产生一种想要回到火星的感觉.假设你的一周有n天,那么ZY编写的选课系统就会给你n堂课.但是该系统不允许在星期i和星期i ...