json原理分析及实例介绍_javascript技巧

这次在项目中前后台的数据交互中用到了json,经过这段时间的使用,大概了解了一下,简单总结一下json。
JSON:JavaScript 对象表示法(JavaScript Object Notation)。
JSON 是存储和交换文本信息的语法。类似 XML。
JSON 比 XML 更小、更快,更易解析。
和 XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的 Object 对象。
先看controller中的一段代码。看主要是看从数据库查询出来的数据是怎样以json的格式输出的。
[java]

复制代码 代码如下:

@RequestMapping("/work/plan/checkSubmitForApproval")
public void checkSubmitForApproval(String planId,HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException{
String result="{\"result\":\"faild\",\"personSituation\":\"null\"}";
HttpSession session = request.getSession();
String industryID = (String) session.getAttribute("industryID");
IIndustry industry = industryService.getById(industryID);
if(industry.getType().equals("XXX")){
try {
boolean flag = false;
IProjectMain yearPlan = projectPlanService.findProjectPlanById(planId);
List<IStaffInfo> listStaffInfo = sysStaffService.getStaffByPlanId(planId, industryID);
for(int i=0;i<listStaffInfo.size();i++){
if(listStaffInfo.get(i).getPractitionersPost().equals(StaffRole.PROGECTMANAGER.toString())){
flag = true;
}
}
if(flag == true){
result="{\"result\":\"success\",\"personSituation\":\""+yearPlan.getPerson_Situation()+"\"}";
}else{
result="{\"result\":\"success\",\"personSituation\":\""+yearPlan.getPerson_Situation()+"\",\"isManager\":\"false\"}";
}
} catch (Exception e) {
result="{\"result\":\"falid\"}";
throw new PlatformException(e);
}finally{
OutputUtils.write(response,result,"text/x-json;charset=UTF-8");
}

先PutputUtils中的write代码
[java]

复制代码 代码如下:

public static void write(HttpServletResponse response, String text, String contentType)
{
PrintWriter out=null;
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType(contentType);
try
{
out = response.getWriter();
out.write(text);
}
catch (IOException e)
{
Logger.getLogger(OutputUtils.class).error(e.getMessage(), e);
} finally{
if(out!=null){
out.flush();
out.close();
}
}
}

其中的思路是得到response的printwriter,将要输出的信息设置到其中。在界面层利用jquery的Post判断返回的信息。
[javascript]

复制代码 代码如下:

<span style="white-space:pre"> </span>function distribute(){
var dplanId = $(".currli").attr("id");
if(dplanId != ""){
$.ajax({
type : "POST",
url :做验证的action url,
dataType : "json",
success : function(data) {
//HAVE为已分配状态
if (data.result == "success" && data.personSituation == "UNHAVE") {
with (document.getElementById("planForm")) {
action=验证合法后要提交的url;
method="post";
submit();
}
<span style="white-space:pre"> </span>}

其中success:function(data)是一个回调函数,即上面做的验证action的方法成功之后执行的操作。在jquery的使用方法详情点击这里查看。
关于jquery的post提交不理解的同学,点击这里学习。
关于ajax和jquery的历史,建议参见维基百科中,写的很清楚。
jquery已经封装好了从response中取data的操作,所以这里用起来非常方便,省去了从xml中一点一点读取的头疼,给开发带来了极大方便。

时间: 2024-11-01 14:52:17

json原理分析及实例介绍_javascript技巧的相关文章

JS中如何比较两个Json对象是否相等实例代码_javascript技巧

在js前端面试过程中,经常会遇到这样的笔试题:JS中如何比较两个Json对象是否相等实例代码,下面小编抽点时间给大家整理下,一起看看吧. 1.先准备三个工具方法,用于判断是否是对象类型,是否是数组,获取对象长度 function isObj(object) { return object && typeof (object) == 'object' && Object.prototype.toString.call(object).toLowerCase() == &quo

BootStrap响应式导航条实例介绍_javascript技巧

Bootstrap,来自 Twitter,是目前最受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷.响应式导航条就是可以在不同的设备下查看不同的效果. 下面给大家分享代码: <header role="banner"> <nav role="navigation" class="navbar navbar-default"> <div c

如何使用json在前后台进行数据传输实例介绍_javascript技巧

上一篇博客写到用javascript生成多组文本,可以让数据的输入不受显示,现在我们需要把这些输入写入数据库,这里就用到json传入. 首先,我们来写一下后台如何生成要传输的数据 [html] 复制代码 代码如下: function generateDtb() { //写入 var txtName = document.getElementById("txtName").value; //创建数组 var dtb = new Array(); //通过循环把数据写入到数组并返回 for

用函数模板,写一个简单高效的 JSON 查询器的方法介绍_javascript技巧

JSON可谓是JavaScript的亮点,它能用优雅简练的代码实现Object和Array的初始化.同样是基于文本的数据定义,它比符号分隔更有语义,比XML更简洁.因此越来越多的JS开发中,使用它作为数据的传输和储存. JS数组内置了不少有用的方法,方便我们对数据的查询和筛选.例如我们有一堆数据: 复制代码 代码如下: var heros = [        // 名============攻=====防=======力量====敏捷=====智力====        {name:'冰室女巫

JSONP跨域的原理解析及其实现介绍_javascript技巧

JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为"Same-Origin Policy"(同源策略).这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容. JavaScript这个安全策略在进行多iframe或多窗口编程.以及Ajax编程时显得尤为重要.根据这个策略,在baidu.com下的页面中包含的JavaScript代码,

Javascript oop设计模式 面向对象编程简单实例介绍_javascript技巧

Javascript oop设计模式 面向对象编程 最初我们写js代码的时候是这么写 function checkName(){ //验证姓名 } function checkEmail(){ //验证邮箱 } function checkPassword(){ //验证密码 } 这种方式会造成全局变量的严重污染,再过渡到 var checkObject = { checkName : function(){}; checkEmail: function(){}; checkPassword:

js操纵跨frame的三级联动select下拉选项实例介绍_javascript技巧

运用HTML.CSS以及Javascript相关知识,编写多窗口多菜单的内容联动. 考察学生关于frame.浏览器对象,以及表单控件的概念,javascript事件触发机制和程序设计, 以及用CSS来组织文字展示的掌握程度,使学生对DHTML有更加深刻的理解. 实验内容[必做] (1)建立一个包含三个frame的窗口 (2)第一个frame1中包含一个select,内容是中国的各个省 (3)第二个frame2中同样含有一个select,内容是各省的地级市 (4)第三个frame3用来显示关于某地

window.opener用法和用途实例介绍_javascript技巧

window.opener,是通过window.open打开子窗体的父窗体的引用. 比如在父窗体parentForm里面,通过window.open("subForm.html"),那么在subform.html中window.opener就代表parentForm.既然在子窗体中能够拿到父窗体的引用,那么就可以在子窗体中设置父窗体的字段值或者调用js方法. 实例:添加人员信息时,其中的机构信息通过子窗体完成输入 父亲窗体,用于添加人员信息. 子窗体完成输入后,机构信息(id.name

java与javascript之间json格式数据互转介绍_javascript技巧

javascript中对象与字符串的互转 对象转为字符串:通过JSON.encode方法,这个是json.js里面的方法,引入到当前文件就可以了. 字符串转换为对象:①使用JSON.decode方法,同上,引入js就可以了.②jQuery中有个方法,$.parseJson也可以实现. java中json字符串与对象的互转 对象转换为字符串:在struts2-json-plugin.jar中有个JsonUtil.serial方法.也可以自己自由定制,通过字符串拼接的方式实现,json字符串的属性一