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
-
jquery下的json格式ajax实现前言 ajax大大地方便了前台页面的显示,提升了用户体验,提高了资源的利用率。而jquery支持的ajax方法又为ajax的实现提供了封装,免去了繁琐的浏览器兼容判断与response返回数据状态判断。 jquery的ajax支持String、XML和JSON机种格式,而随着现在类库的不断完善,现在可以很方便的直接将对象直接转换成JSON的数据格式,返回给前台。而前台JS也可以将JSON数据很方便地再转换成对象。 相对于XML,JSON这种数据格式可能直接看上去没有XML那么清晰,但是其更利于对其的解析,直接eval即可获取其对象,利于编程。一、实例 实例才是王道,需求如下:输入整机条码信息,后台查询相关数据(工单号码、机种、工单数量)并将其自动显示到页面采用jquery触发整机条码的change事件,触发时走如下ajax方法$.ajax({ &n
-
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
-
【九月打卡】第12天 封装web返回对象课程名称:SpringBoot 在线协同办公小程序开发 全栈式项目实战课程章节:封装web返回对象课程讲师: 神思者课程内容:虽然SpringMVC的Controller可以自动把对象转换成JSON返回给客户端,但是我们需要制定一个统一的标准,保证所有Controller返回的数据格式一致。最简便的办法就是定义封装类,来统一封装返回给客户端的数据。修改pom.xml文件,添加依赖库。Apache的httpcomponents库里面的HttpStatus类封装了很多状态码,所以我们在Web返回对象中封装状态吗,可以用到这些状态码。<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.13</version></dependency>packag
ajax返回json对象相关课程
ajax返回json对象相关教程
- 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 能轻松帮你实现。
- 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 拥有异步特质,我们可以在不刷新页面的情况下,通过交互数据,在页面上做局部的刷新等数据处理。
- 3.3 返回值是对象 如果函数体返回对象字面量表达式,可以省略大括号,使用圆括号的形式包裹对象。var getimooc = () => ({a: 1, b: 2});getimooc() // {a: 1, b: 2}
- 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 的标签中,如下所示:
ajax返回json对象相关搜索
-
ajax
android
a href
abap
abap开发
abort
absolutelayout
abstractmethoderror
abstracttablemodel
accept
access
access教程
accordion
accumulate
acess
action
actionform
actionlistener
activity
addeventlistener