ajax返回多个json
很多同学在进行编程学习时缺乏系统学习的资料。本页面基于ajax返回多个json内容,从基础理论到综合实战,通过实用的知识类文章,标准的编程教程,丰富的视频课程,为您在ajax返回多个json相关知识领域提供全面立体的资料补充。同时还包含 android、a href、abap 的知识内容,欢迎查阅!
ajax返回多个json相关知识
-
ajax返回值 json 乱码 解决方案ajax的返回值一直乱码,试过各种ContentType设定utf-8的方法,就是搞不定,而且明明返回值是json字符串,一直出现ajax取得返回值类型为object。最后查资料发现,SpringMVC使用 @ResponseBody注解,返加字符串不做任何处理时,有可能会出现乱码问题。这是由于 StringHttpMessageConverter 类中,默认采用的字符集是 ISO-8859-1。public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String> { public static final Charset DEFAULT_CHARSET = C
-
Ajax叠加(Ajax返回数据用Ajax提交) 最近在做人事管理系统的一个签到功能,首先是把部门当做参数,把参数用Ajax发送到数据库进行查询,然后以表格形式动态生成员工信息到返回页面的Div里,表格最后的一列是签到按钮,这时我想用JQuery继续获取被点击的“签到”按钮,然后用Ajax将数据发送到数据库签到表,更新签到表,于是我就把每个签到按钮的id属性设置成第一次Ajax返回的每个员工信息的工号,再次用JQuery获取,怎么获取呢?想到了标签加事件选择器,于是写了下面代码: $(function(){ $("tr input:button").click(){ $.ajax({ &
-
springmvc 4.0 返回json数据基本配置<mvc:annotation-driven> <mvc:message-converters register-defaults="false"> <!-- 避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <!-- 这里顺序不能反,一定先写text/html,不然ie下出现下载提示 --> <value>text/html;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </pr
-
jQuery/Ajax/PHP/Json 的一个综合例子jQuery/Ajax/PHP/Json 的一个综合例子 jQuery 是一个优秀的 Javascript 框架,对 js 进行了优秀的包装,提供了许多方便的功能。jQuery 对 ajax 的包装也堪称优秀。 jQuery 可以以 json 文件传输协议来传输数据(类似 xml,而且大有取代 xml 的趋势),而网站后台代码必须与之配合使用。PHP 是用 json_encode 函数来对返回的数组数据进行编码的,但这个函数只有 PHP5.2版本以上才支持。 从网上找到一个 json 的操作类,本人在 PHP4.4.7 版本下测试通过。本人还建了个函数 function my_json_encode($phparr),使代码兼容 PHP5.2 以上版本。 示例代码(包括 json 的类包软件)可以在以下网址下载:http://download.csdn.net/so
ajax返回多个json相关课程
ajax返回多个json相关教程
- 3.2 返回 json 类型 视图函数直接返回 json 数据是在微服务架构中常见的套路。这里 Django 程序只提供后端数据并不提供静态资源。针对返回 json 数据,在 Django 中专门定义了一个 JsonResponse 类用来生成 json 数据。它实际上是继承自 HttpResponse 类:# django/http/response.py# 忽略其他内容class JsonResponse(HttpResponse): """ 忽略注释部分内容 """ def __init__(self, data, encoder=DjangoJSONEncoder, safe=True, json_dumps_params=None, **kwargs): if safe and not isinstance(data, dict): raise TypeError( 'In order to allow non-dict objects to be serialized set the ' 'safe parameter to False.' ) if json_dumps_params is None: json_dumps_params = {} kwargs.setdefault('content_type', 'application/json') data = json.dumps(data, cls=encoder, **json_dumps_params) super().__init__(content=data, **kwargs)JsonResponse 类的使用和 HttpResponse 类一样简单,我们只需要把字典数据传给 JsonResponse 类进行实例化即可。但是字典数据中存在中文时候,会出现乱码,我们只需要在实例化 JsonResponse 时,多传入一个参数即可:# 在页面上会出现乱码def hello_world(request, *args, **kwargs): data = {'code': 0, "content": "返回中文字符串", "err_msg": ""} return JsonResponse(data)# 经过处理后的JsonResponsedef hello_world(request, *args, **kwargs): data = {'code': 0, "content": "返回中文字符串", "err_msg": ""} return JsonResponse(data, json_dumps_params={'ensure_ascii': False})请求结果:# 第一个不处理的 JsonResponse 返回[root@server ~]# curl "http://127.0.0.1:8881/hello/"{"code": 0, "content": "\u8fd4\u56de\u4e2d\u6587\u5b57\u7b26\u4e32", "err_msg": ""}# 使用第二个数据处理后的HttpResponse返回[root@server ~]# curl "http://127.0.0.1:8881/hello/"{"code": 0, "content": "返回中文字符串", "err_msg": ""}另外一种比较好的方式是,仿照 JsonResponse 类,定义一个支持返回包含中文 json 数据的 Response 类:# 忽略导入模块# 将原来支持的json_dumps_params参数固定写死成{'ensure_ascii':False}class JsonResponseCn(HttpResponse): """ 忽略注释部分内容 """ def __init__(self, data, encoder=DjangoJSONEncoder, safe=True, **kwargs): if safe and not isinstance(data, dict): raise TypeError( 'In order to allow non-dict objects to be serialized set the ' 'safe parameter to False.' ) kwargs.setdefault('content_type', 'application/json') data = json.dumps(data, cls=encoder, **{'ensure_ascii':False}) super().__init__(content=data, **kwargs)这样处理后,我们在和原来一样使用 JsonResponseCn 类来返回 json 数据即可,不用考虑返回的字典数据中是否包含中文字符:def hello_world(request, *args, **kwargs): data = {'code': 0, "content": "返回中文字符串", "err_msg": ""} return JsonResponseCn(data)
- 3.3 返回 JSON 格式的数据 客户端访问操作资源的 URI 时,服务端返回 JSON 格式的数据。例如:1. 获取特定的主题客户端获取 id 为 123 的主题信息,发出如下请求:GET /topics/123服务端返回 JSON 格式的数据:{ "title": "今天吃什么?", "content": "谢谢"}在返回的 JSON 数据中, title 表示主题的标题,content 表示主题的正文。2. 获取所有的主题客户端获取所有的主题信息,发出如下请求:GET /topics服务端返回 JSON 格式的数据:[ { "title": "今天吃什么?", "content": "谢谢" }, { "title": "今天下雨吗?", "content": "有谁知道" }] 返回的 JSON 数据是一个数组,数组包含 2 项元素,每个元素表示一个主题。
- 4. 什么是 Ajax? 说这么多,那么什么是 Ajax 呢?简单来讲,Ajax 就是 JavaScript 基于 XMLHttpRequest 对象与服务端进行交互,向服务端发送一个请求,并且获取和处理服务器返回的内容。在这个过程中,我们可以使用 XML ,HTML 和 JSON 等格式的数据进行交互。并且,Ajax 拥有异步特质,我们可以在不刷新页面的情况下,通过交互数据,在页面上做局部的刷新等数据处理。
- 5. 解析 json 数据 编写web api,在写 post 请求接口时,通常将接口参数以 json 格式发送给服务端,request.json 保存了请求中的 json 数据,下面编写一个例子 request-json.py 解析 json 数据:from flask import Flask, requestapp = Flask(__name__)@app.route('/')def root(): file = open('api.html', encoding = 'utf-8') return file.read()@app.route('/api/addUser', methods = ['POST'])def addUser(): json = request.json print('JSON', json) print('name = %s' % json['name']) print('age = %s' % json['age']) return 'addUser OK'if __name__ == '__main__': app.run(debug = True)在第 4 行,编写路径 / 的处理函数 root(),它读取文件 api.html,将内容返回给浏览器。在第 9 行,编写路径 /api/addUser 的处理函数 addUser(),打印 request.json 中的参数 name 和 age,返回给浏览器 ‘addUser OK’。客户端使用 POST 方法提交请求 /api/addUser,在 Flask 中,需要指明 methods 为 ‘POST’。路径 / 返回 api.html,api.html 通过 ajax 调用服务端的 /api/addUser,内容如下:<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.0/jquery.js"></script><h1 id='result'>result</h1><script>var data = JSON.stringify({'name':'zhangsan', 'age':'20'});$.ajax({ url: '/api/addUser', type: 'post', contentType:'application/json', data: data, success: function(data) { $("#result").html(data); }, error: function(e) { alert('ERROR') }});</script>在第 2 行,定义 id 为 result 的标签,用于显示调用结果;在第 4 行,设定 /api/addUser 的接口参数: name 和 age;在第 5 行,通过 jquery.ajax 调用服务端的 /api/addUser。请求调用成功时,回调 success 函数,将结果显示在 id 为 result 的标签中,如下所示:
- 2.2 返回对象 JAVA 中的数据很多时候都是以 OOP 的形式存在的,如学生对象数据、老师对象数据、用户对象数据……那么,控制器中的方法能不能直接把数据以对象为单位写入响应包后返回给浏览器了?如下面的实例:@RequestMapping("/test02")@ResponseBodypublic User testJson01() { return new User("mk", "123");}打开浏览器,在地址栏上输入:http://localhost:8888/sm-demo/json/test02 。在浏览器你将看到如下图所示结果:抛异常了。对于出错,大家应该有预感。User 是 JAVA 语言中的类类型,对于浏览器而言对它的了解是一片空白。但是,为什么前面返回字符串时却可以了?那是因为字符串也是一种通用类型,浏览器没有不认识的道理,但是,User 类型,浏览器只能摸后脑勺了。如果想让浏览器识别出 User 类型数据。想想也简单,自己编码,把对象数据转换成字符串格式。@RequestMapping("/test03")@ResponseBodypublic String testJson03() { User user=new User("mk", "123"); return user.getUserName()+","+user.getUserPassword();}经过上面的修改后,浏览器中能显示出数据。但是,这里会有 2 个问题需要思考一下:如前所述,前后端分离最主要的思想是让前端承担一部分数据业务逻辑。一串没有特定格式的字符串传递给前端,真要交给 JS 处理,你还真不怕 JS 烦心,你叫它如何从中识别出谁是谁;直接返回值给浏览器之前,需要通过手工编码的方式把 OOP 数据格式转换成字符串,这番折腾,劳心劳力。好!先解决第一个问题。字符串数据类型是非结构化的,但是,可以把它转换成具有特定结构格式的 JSON 字符串。@RequestMapping("/test04")@ResponseBodypublic String testJson04() { User user = new User("mk", "123"); String json = "{\"userName\":\"" + user.getUserName() + "\",\"userPassWord\":" + "\"" + user.getUserPassword() + "\"" + "}"; return json; }打开浏览器,地址栏中输入 http://localhost:8888/sm-demo/json/test04 。浏览器中将显示如下信息:传递给浏览器的虽然还是字符串,但是是具有特定格式的 JSON 字符串,如果要交给 JS 处理,JS 表示很开心。是的,数据格式的问题解决了,但是,编码的工作量增加了很多。其实,你所想要的结果,Spring MVC 能轻松帮你实现。
- 2.2 使用返回值变量返回 Go 语言还能直接在返回值处声明变量,这个变量的作用域是整个函数,并且会在 return 的时候直接返回。代码示例:package mainimport "fmt"func SumAndProduct(a, b int) (c int, d int) { c = a + b //因为c和d函数返回值处已经定义了,可以直接使用 d = a * b return //直接返回,c和d自动传出去}func main() { sum, product := SumAndProduct(1, 2) //接收多返回值的函数时,也需要用逗号隔开变量 fmt.Println("a + b =", sum) fmt.Println("a * b =", product)}执行结果:
ajax返回多个json相关搜索
-
ajax
android
a href
abap
abap开发
abort
absolutelayout
abstractmethoderror
abstracttablemodel
accept
access
access教程
accordion
accumulate
acess
action
actionform
actionlistener
activity
addeventlistener