关于ajax请求,返回json数据格式

时间:2021-01-07 23:44:52

使用servlet测试

后台数据为:返回类型没有设置(方式一)

 String str = "["+
"{ id:1, pId:0, name:\"可折腾的父节点 1\", t:\"我很普通,随便 展开/折叠 我吧\", open:false},"+
"{ id:11, pId:1, name:\"叶子节点 - 1\", t:\"我老爸很普通,随便折腾他吧\"},"+
"{ id:12, pId:1, name:\"可折腾的父节点 2\", t:\"我和我老爸都很普通,随便折腾我和他吧\", open: false},"+
"{ id:121, pId:12, name:\"父节点 - 121\", t:\"我老爸很普通,随便折腾他吧\", open:true},"+
"{ id:1211, pId:121, name:\"父节点 - 1211\", t:\"我老爸很普通,随便折腾他吧\", open:false},"+
"{ id:1212, pId:1211, name:\"叶子节点 - 1212\", t:\"我老爸很普通,随便折腾他吧\"},"+
"{ id:1213, pId:121, name:\"父节点 - 1213\", t:\"我老爸很普通,随便折腾他吧\", open:false},"+
"{ id:1214, pId:1213, name:\"叶子节点 - 1214\", t:\"我老爸很普通,随便折腾他吧\"},"+
"{ id:123, pId:12, name:\"叶子节点 - 23\", t:\"我老爸很普通,随便折腾他吧\"},"+
"{ id:13, pId:1, name:\"叶子节点 - 3\", t:\"我老爸很普通,随便折腾他吧\"},"+
"{ id:2, pId:1, name:\"无法折叠的父节点\", t:\"休想让我折叠起来...除非你用 expandAll 方法\", open:false, collapse:false},"+
"{ id:21, pId:2, name:\"叶子节点2 - 1\", t:\"哈哈哈,我老爸NB吧,不能折叠吧?\"},"+
"{ id:22, pId:21, name:\"叶子节点2 - 2\", t:\"哈哈哈,我老爸NB吧,不能折叠吧?\"},"+
"{ id:23, pId:21, name:\"叶子节点2 - 3\", t:\"哈哈哈,我老爸NB吧,不能折叠吧?\"},"+
"{ id:3, pId:2, name:\"无法展开的父节点\", t:\"就凭你也想展开我?难呀...嘿嘿, 除非你用 expandAll 方法\", open:false, expand:true},"+
"{ id:31, pId:3, name:\"叶子节点3 - 1\", t:\"居然让你看到了...莫非你用了全部节点展开?\"},"+
"{ id:32, pId:31, name:\"叶子节点3 - 2\", t:\"居然让你看到了...莫非你用了全部节点展开?\"},"+
"{ id:33, pId:31, name:\"叶子节点3 - 3\", t:\"居然让你看到了...莫非你用了全部节点展开?\"},"+
"{ id:4, pId:3, name:\"空空的父节点 1\", t:\"一无所有...除了我自己\", isParent:true, open:false}"+
"]";

前端使用$.post接收,没有问题,能够加载出树结构

 $.POST('/TestServlet',{},function(data){
var nodes = eval("("+data+")");
$.fn.zTree.init($("#tree"), setting, nodes);
});

使用ajax接收,配置呢type为json,会提示加载失败

 $.ajax({
type: "POST",
url: '/TestServlet',
timeout: 1000,
data: {
key1: "value1",
key2: "value2"
},
async: true,
dataType: "json",
error: function(){
alert("请求失败!");
},
success: function(data){
treeObj = $.fn.zTree.init($("#tree"), setting, data);
}
});

见后端的字符串修改:键上加了引号(方式二)

         String str = "["+
"{ \"id\":1, \"pId\":0, \"name\":\"可折腾的父节点 1\", \"t\":\"我很普通,随便 展开/折叠 我吧\", \"open\":true},"+
"{ \"id\":11, \"pId\":1, \"name\":\"叶子节点 - 1\", \"t\":\"我老爸很普通,随便折腾他吧\"},"+
"{ \"id\":12, \"pId\":1, \"name\":\"可折腾的父节点 2\", \"t\":\"我和我老爸都很普通,随便折腾我和他吧\", \"open\": false},"+
"{ \"id\":121, \"pId\":12, \"name\":\"父节点 - 121\", \"t\":\"我老爸很普通,随便折腾他吧\", \"open\":true},"+
"{ \"id\":1211, \"pId\":121, \"name\":\"父节点 - 1211\", \"t\":\"我老爸很普通,随便折腾他吧\", \"open\":false},"+
"{ \"id\":1212, \"pId\":1211, \"name\":\"叶子节点 - 1212\", \"t\":\"我老爸很普通,随便折腾他吧\"},"+
"{ \"id\":1213, \"pId\":121, \"name\":\"父节点 - 1213\", \"t\":\"我老爸很普通,随便折腾他吧\", \"open\":false},"+
"{ \"id\":1214, \"pId\":1213, \"name\":\"叶子节点 - 1214\", \"t\":\"我老爸很普通,随便折腾他吧\"},"+
"{ \"id\":123, \"pId\":12, \"name\":\"叶子节点 - 23\", \"t\":\"我老爸很普通,随便折腾他吧\"},"+
"{ \"id\":13, \"pId\":1, \"name\":\"叶子节点 - 3\", \"t\":\"我老爸很普通,随便折腾他吧\"},"+
"{ \"id\":2, \"pId\":1, \"name\":\"无法折叠的父节点\", \"t\":\"休想让我折叠起来...除非你用 openAll 方法\", \"open\":false, \"collapse\":false},"+
"{ \"id\":21, \"pId\":2, \"name\":\"叶子节点2 - 1\", \"t\":\"哈哈哈,我老爸NB吧,不能折叠吧?\"},"+
"{ \"id\":22, \"pId\":21, \"name\":\"叶子节点2 - 2\", \"t\":\"哈哈哈,我老爸NB吧,不能折叠吧?\"},"+
"{ \"id\":23, \"pId\":21, \"name\":\"叶子节点2 - 3\", \"t\":\"哈哈哈,我老爸NB吧,不能折叠吧?\"},"+
"{ \"id\":3, \"pId\":2, \"name\":\"无法展开的父节点\", \"t\":\"就凭你也想展开我?难呀...嘿嘿, 除非你用 openAll 方法\", \"open\":false, \"expand\":true},"+
"{ \"id\":31, \"pId\":3, \"name\":\"叶子节点3 - 1\", \"t\":\"居然让你看到了...莫非你用了全部节点展开?\"},"+
"{ \"id\":32, \"pId\":31, \"name\":\"叶子节点3 - 2\", \"t\":\"居然让你看到了...莫非你用了全部节点展开?\"},"+
"{ \"id\":33, \"pId\":31, \"name\":\"叶子节点3 - 3\", \"t\":\"居然让你看到了...莫非你用了全部节点展开?\"},"+
"{ \"id\":4, \"pId\":3, \"name\":\"空空的父节点 1\", \"t\":\"一无所有...除了我自己\", \"isParent\":true, \"open\":false}"+
"]";

且设置返回值类型:

response.setContentType("application/json; charset=utf-8");

就可以使用ajax设置type为json接收数据。

注意:后台设置json格式返回时,键上要加引号。如果键上没加引号,但是又设置呢返回值为json,通过浏览器,可以正常加载出数据,但是在使用ajax请求时,会失败。

关于ajax请求,返回json数据格式的更多相关文章

  1. 在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法

    在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法 最近在做一个小东西,使用kindeditor上传图片的时候,自己写了一个上传的方法,按照协议规则通过ajax返回json ...

  2. AJAX请求,返回json进行页面绑值

    AJAX请求,返回json进行页面绑值 后台 controller @RequestMapping(value = "backjson.do",method=RequestMeth ...

  3. ajax请求返回json字符串/json对象 处理

    1. 返回json字符串如何处理 $.ajax({ url:xxx, success:function(date){ }, error:function(){ } }); 通过最原始的返回: Prin ...

  4. 使用jQuery发送POST,Ajax请求返回JSON格式数据

    问题: 使用jQuery POST提交数据到PHP文件, PHP返回的json_encode后的数组数据,但jQuery接收到的数据不能解析为JSON对象,而是字符串{"code" ...

  5. AJAX请求返回JSON数据动态生成html

    1:DeliveryPersonVO对象 package com.funcanteen.business.entity.delivery.vo; import java.util.List; impo ...

  6. jsp Ajax请求(返回json数据类型)

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  7. ajax请求返回Json字符串运用highcharts数据图表展现数据

    [1].[图片] Json字符串和highcharts数据图表展现.jpg 跳至 [1] code=26754#44745" rel="nofollow"> [2] ...

  8. 解决ajax请求返回Json无法解析&quot&semi;&bsol;&quot&semi;字符的问题

    原因:获取身份证信息,涉及图片路径,存在“\”字符,导致Json解析错误 解决思路:将返回类型从"json"改成"text",此时返回的数据类型变成字符串,将字 ...

  9. ajax请求返回json数据弹出下载框的解决方法

    将返回的Content-Type由application/json改为text/html. 在struts2下: <action name="XXXAjax" class=& ...

  10. spring mvc 避免IE执行AJAX时&comma;返回JSON出现下载文件

    <!-- 避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" c ...

随机推荐

  1. ecshop 模板开发总结

    ecshop 模板开发总结 模板标签 1.{$articleTitle|escape:"html"} 描述:用于html转码,url转码,在没有转码的变量上转换单引号,十六进制转码 ...

  2. ubuntu14&period;04 python自带版本升级

    ubuntu14.04 python自带版本升级 sudo add-apt-repository ppa:fkrull/deadsnakes-python2. sudo apt-get update ...

  3. IOS 作业项目&lpar;4&rpar;步步完成 画图 程序&lpar;上&rpar;

    先上流程图

  4. angularjs2 学习笔记(二) 组件

    angular2 组件 首先了解angular2 组件的含义 angular2的应用就是一系列组件的集合 我们需要创建可复用的组件供多个组件重复使用 组件是嵌套的,实际应用中组件是相互嵌套使用的 组件 ...

  5. Linux安装Monaco字体

    Linux安装字体的方式其实很简单,就是调用 fc-cache -f -v 命令,其实我们可以什么都不添加直接调用这个命令可以看到它会去/usr/share/fonts/truetype等目录以及你自 ...

  6. vue访问原生 DOM 事件

    <body> <div id="test"> <button @click="changeColor('你好',$event)"& ...

  7. h5标签canvas关于getImageData跨域的问题

    h5标签canvas关于getImageData跨域的问题 在学习h5的时候,canvas标签中getImageData()报错:security error! 具体代码如下(chrome浏览器): ...

  8. 使用MD5SUM检查文件

    有不少网站提供下载文件的同时,提供了文件的MD5SUM的值.如何检查自己下载的文件与原文件一样呢?用md5sum的-c选项. 操作如下: 1.先新建一个文本文件,写入网站上提供的md5sum的值,空两 ...

  9. CF1121C 模拟

    恶心场恶心题,,round千万不能用库函数的.. /*枚举时间轴t,r是当前完成比例, 记录每个测试的开始时间si,如果有t-si等于r,那么这个测试就标记一下 优先队列存储每个测试,按照si+ai的 ...

  10. p1470 Longest Prefix

    原本就想到dp,可是是我的思路是在串的各个位置都遍历一次set,看dp[i-st[k]]是否为1且前length(st[k])是st[k].这样200000*200*10会超时.更好的办法是在i位取前 ...