在本文中,我们将带你了解在这篇文章中,我们将为您详细介绍的方方面面,并解答24ajax上传json格式的数据常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的$.ajax返回的JSON格式的数
在本文中,我们将带你了解在这篇文章中,我们将为您详细介绍的方方面面,并解答24ajax上传json格式的数据常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的$.ajax返回的JSON格式的数据后无法执行success的解决方法、161.使用fastjson将json格式的数据转化为对象、ajax get请求得到了一个json格式的数据,在js中如何遍历出来、ajax 请求PHP返回json格式的处理。
本文目录一览:- (24)ajax上传json格式的数据(ajax传输json数据格式)
- $.ajax返回的JSON格式的数据后无法执行success的解决方法
- 161.使用fastjson将json格式的数据转化为对象
- ajax get请求得到了一个json格式的数据,在js中如何遍历出来
- ajax 请求PHP返回json格式的处理
(24)ajax上传json格式的数据(ajax传输json数据格式)
urs.py
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r''^admin/'', admin.site.urls),
url(r''^$'',views.index),
url(r''^upload_file/$'',views.upload_file)
]
views.py
from django.shortcuts import render,HttpResponse
from app01 import models
from django.http import JsonResponse
# Create your views here.
def index(request):
return render(request,''index.html'')
def upload_file(request):
''''''文件上传''''''
import json
dic = {''status'':100,''msg'':None}
if request.method == ''POST'':
# post形式上传json格式数据,POST中没有值,在body中取出
upload_dic = json.loads(request.body)
name = upload_dic[''name'']
pwd = upload_dic[''pwd'']
user = models.User.objects.filter(name=name,pwd=pwd).first()
if user:
dic[''msg''] = ''登陆成功''
else:
dic[''status''] = 101
dic[''msg''] = ''账号或密码错误''
# 这里注意返回一定是Json格式返回
return JsonResponse(dic)
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.css">
<script src="/static/jquery.js"></script>
<title>ajax</title>
</head>
<body>
<h1>Ajan实现json格式的数据传输</h1>
<p>用户名:<input type="text" name="''name" id="name"></p>
<p>密码:<input type="password" name="pwd" id="pwd"></p>
<button id="btn2">点击登录</button>
<span id="errors"></span>
</body>
<script>
$("#btn2").click(function () {
var upload_data = {name:$(''#name'').val(),pwd:$(''#pwd'').val()}
{#js语法把字典格式转成json格式字符串#}
var upload_json = JSON.stringify(upload_data)
{#js语法把json字符串转成原生的格式#}
{#var json_parse = JSON.parse(upload_data)#}
$.ajax({
url: ''/upload_file/'',
type: ''post'',
contentType: ''application/json'', //指定格式为json格式
data: upload_json,
success: function (data) {
console.log(data)
if (data.status==100){
location.href = ''http://www.baidu.com''
}else{
$(''#errors'').text(data.msg)
}
}
})
})
</script>
</html>
$.ajax返回的JSON格式的数据后无法执行success的解决方法
近段时间做项目,在项目使用了ajax技术,遇到了一个奇怪的问题:"$.ajax返回的JSON格式的数据无法执行success",代码是这样写的:
$.ajax({ .. dataType:'json',... success:function(jsonData){ //不执行success },error:function(error){ //总是执行这个error } });
百思不得其解啊,为什么会这样子呢?检查了一下返回的JSON字符串,我觉得JSON字符串的格式应该没有问题的,于是在网上查了一下,发现有还真有人遇到了和我一样的问题,找出原因所在" 是因为我指定了dataType:'json',这样指定之后,对Json格式的要求就非常严格起来了,起初我的json格式是这样写的:"{result:{\"success\":\"true\",\"meg\":\"success\"}}",可这样写不行,得改成这样写:"{\"success\":true,\"mesg\":\"success\"}",如果说是bool类型,则不用加引号,其它的键/值都需要加引号。 jquery1.4以后对json格式变严格了,也就是说必须要这种格式的{"键":"值","键":"值"};像原来的{键:值,键:值}和{'键':'值','键':'值'}这种都是错误的,不合标准,所以jquery返回error。 以前没有注意到这样的问题,这次遇到了,也找到了解决办法,在此记录一下!
161.使用fastjson将json格式的数据转化为对象
1. 导入fastjson的jar包
<!-- 9.fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency> |
2. 常用几种类型的json转化为对象
2.1 对象形式的json
@RequestMapping("/EasyJsonToObject.action") public void EasyJsonToObject(){ //(1) 创建一个对象并将 给对象赋值 然后使用fastjson转化为json类型的数据 Student student = new Student(); student.setId(UUID.randomUUID().toString().replaceAll("-", ""));//生成id student.setName("张三"); student.setPassword("122455"); String studentJson = JSON.toJSONString(student);//将对象转json System.out.println(studentJson); //(2)再将对象转化为 Student changeStudent = JSON.parseObject(studentJson,Student.class); System.out.println(changeStudent); } |
2.1.1 将对象转化为json
需要的实体类格式:
转换过程:
2.1.2 将json数据转为对象
2.2 将list对象转为json 然后将对象list数据
@RequestMapping("/listJsonToObject.action") public void listJsonToObject(){ //(1) 创建一个对象并将 给对象赋值 然后使用fastjson转化为json类型的数据 List<Student> list= new ArrayList<Student>(); Student student = new Student(); student.setId(UUID.randomUUID().toString().replaceAll("-", ""));//生成id student.setName("刘莹"); student.setPassword("123456"); Student student2 = new Student(); student2.setId(UUID.randomUUID().toString().replaceAll("-", ""));//生成id student2.setName("张晓琪"); student2.setPassword("789456"); list.add(student); list.add(student2); String studentJson = JSON.toJSONString(list);//将对象转json System.out.println(studentJson); //(2)再将对象转化为 List<Student> list2 = JSON.parseArray(studentJson,Student.class); System.out.println(list2); } |
需要的实体类对象
2.3 对象中含有对象 转化为对象
@RequestMapping("/mapListJsonToObject.action") public void mapListJsonToObject(){ //(1) 创建一个对象并将 给对象赋值 然后使用fastjson转化为json类型的数据 HashMap<String, Object> map = new HashMap<String,Object>();//用来装数据 Student student = new Student(); student.setId(UUID.randomUUID().toString().replaceAll("-", ""));//生成id student.setName("刘思佳"); student.setPassword("123456"); map.put("code", "200"); map.put("data", student); String studentJson = JSON.toJSONString(map);//将对象转json System.out.println(studentJson); //(2)再将对象转化为 Data data = JSON.parseObject(studentJson,Data.class); System.out.println(data); } |
2.4 对象中含有list的json格式
/** * 3.复杂json转为对象 * 对象中包含数组的json * http://localhost:8080/mavenssm20180519//josnIncludeListJsonToObject.action * @Title: josnIncludeListJsonToObject * @Description: * @return void * @throws @date 2018年7月22日 下午10:46:00 */ @RequestMapping("/josnIncludeListJsonToObject.action") public void josnIncludeListJsonToObject(){ //(1) 创建一个对象并将 给对象赋值 然后使用fastjson转化为json类型的数据 HashMap<String, Object> map = new HashMap<String,Object>();//用来装数据 List<Student> list= new ArrayList<Student>(); Student student = new Student(); student.setId(UUID.randomUUID().toString().replaceAll("-", ""));//生成id student.setName("刘思佳"); student.setPassword("123456"); Student student2 = new Student(); student2.setId(UUID.randomUUID().toString().replaceAll("-", ""));//生成id student2.setName("陈晓莹"); student2.setPassword("789456"); list.add(student); list.add(student2); map.put("code", "200"); map.put("data", list); String studentJson = JSON.toJSONString(map);//将对象转json System.out.println(studentJson); //(2)再将对象转化为 Data data = JSON.parseObject(studentJson,Data.class); System.out.println(data); } |
需要的实体类(****重要)
将
ajax get请求得到了一个json格式的数据,在js中如何遍历出来
ajax get请求得到了一个json格式的数据,在js中怎么遍历出来
nbsp;html>
<script></script>
<script><br /> $(document).ready(function(){<br /> $("button").click(function(){<br /> $.get("/world",function(data,status){<br /> //data为json格式 返回数据位: {"name":"liweitao","age":"23"}<br /> //在js中我怎么得到name的值,怎么遍历<br /><br /> <span> //请帮我在此处补充代码<br /><br /> });<br /> });<br /> });<br /> </script>
------解决思路----------------------
<br /><script type="text/javascript"><br />var data = {"name":"liweitao","age":"23"};<br />for(var obj in data){<br /> document.writeln(obj + '':'' + data[obj]);<br />}<br /></script><br />
------解决思路----------------------
//data为json格式 返回数据位: {"name":"liweitao","age":"23"}<br />$.get("/world",function(data,status){<br /> //在js中我怎么得到name的值,怎么遍历<br /> var d = eval(''('' + data + '')'');<br /> alert(d.name);<br />});<br />
$.get("/world",function(data,status){<br /> //在js中我怎么得到name的值,怎么遍历<br /> alert(data.name);<br />}, ''json''); //如果加上这个属性<br />
------解决思路----------------------
for in 循环或者直接for循环,但是如果直接for循环的话你就得使用$.ajax来重新调整你的代码了。
ajax 请求PHP返回json格式的处理
php返回代码格式
public function json(){
if (request()->isAjax()){
$data = [
''code''=>''1'',
''msg''=>''成功'',
''data''=>array(''1''=>''1'',''2''=>''2''),
];
return json_encode($data,JSON_UNESCAPED_UNICODE);
}
return view(''json'');
}
ajax请求
//监听提交
form.on(''submit(upd)'',function(data) {
//console.log(data);
//发异步,把数据提交给php
$.ajax({
url:"{:url(''json'')}",
type:"post",
data:{},
jsonType:"json",
success:function(a){
// var movie =eval("(" +a +")");
eval("var movie = " +a);
console.log(movie);
},
error:function(e){
layer.alert("系统错误,请刷新页面后重新修改", {
icon: 7
},
function() {
//关闭当前窗口
layer.close(layer.index);
//刷新页面
window.parent.location.reload();
});
}
})
return false;
});
打印结果
主要是eval()这个函数是关键
{name:''平凡的世界'',author:''路遥''} 这是你服务器端返回的json字符串数据,那么你客户端你要怎么用呢,eval就是把一个字符串执行下,让普通的字符串变成一个对象(好像说得不是很贴切),就是普通字符执行后,里面的东西会变成可以直接使用的代码:如日期对象,数组。。。
eval("var movie = " +result); 这句意思就是把字符串变成可以直接使用的对象
执行后就相当于
var movie={name:''平凡的世界'',author:''路遥''};把json对免赋值给movie变量
那么就可以直接引用了movie.name就是“平凡的世界”了movie.author就是“路遥”了,希望你能懂
关于和24ajax上传json格式的数据的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于$.ajax返回的JSON格式的数据后无法执行success的解决方法、161.使用fastjson将json格式的数据转化为对象、ajax get请求得到了一个json格式的数据,在js中如何遍历出来、ajax 请求PHP返回json格式的处理等相关内容,可以在本站寻找。
本文标签: