您的当前位置:首页完美处理json数据无法执行success
广告

完美处理json数据无法执行success

2023-11-30 来源:酷申汽车网

这次给大家带来完美处理json数据无法执行success,完美json数据无法执行success的注意事项有哪些,下面就是实战案例,一起来看一下。

1.jquery通过ajax方法获取json数据不执行success回调

问题描述:jquery通过ajax方法获取json数据不执行success回调方法

问题原因:json格式存在问题或不符合标准写法,导致总是执行error回调方法

解决方案:使json格式务必符合下述3个标准写法:

    1)键名称:用双引号括起;

    2)字符串:用双引号括起;

    3)数字,布尔值不需要使用双引号括起 ;

注意:一定是双括号!

2.jQuery中ajax使用json数据类型总是跳过success执行error语句

执行函数

error : function(XMLHttpRequest, textStatus, errorThrown) {//这个error函数调试时非常有用,如果解析不正确,将会弹出错误框    alert(XMLHttpRequest.responseText); alert(XMLHttpRequest.status);alert(XMLHttpRequest.readyState);alert(textStatus); // parser error;}

就明白错误信息了;

弹出的框里显示:

<!DOCTYPE html PUBLIC "-//W3C //DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD /xhtml1-transitional.dtd">以 及<?xml version="1.0" encoding="gb2312" ?>

这两句话,虽然不清楚为什么,我删除之后,就成功执行 success了

3.$.ajax()中的URL跨域时,总是不执行success,老进入error

1)我加上ServletActionContext.getResponse().setHeader("Access-Control-Allow-Origin", "*");

解决跨域问题,就顺利进入success了

2)dataType:"json",

去掉 看能进success 不 。

dataType 是预期服务器返回过来的信息类型 。

原因:返回的数据类型一定要符合定义的数据类型。即如果你定义的 dataType 是 json 类型的,那么返回来的数据一定是 json 才可以,平且不然就会执行 error 里的程序块儿。

(1) 同时需要特别的注意返回的JSON数据是否是严格的JSON格式.

(2) 也应该严重关切当后台返回的是一个List 数据(List当中的数据是Json格式)时,有没脏数据即不是严格的JSON格式。

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

ajax可以处理服务器返回哪些数据类型?

Ajax请求时显示进度

小编还为您整理了以下内容,可能对您也有帮助:

请问后台返回json数据用ajax接收时不执行success是怎么回事?

先指定返回text类型数据,看看能不能正常得到
再改为json的,
如果得不到那就是格式的问题了

请问后台返回json数据用ajax接收时不执行success是怎么回事?

先指定返回text类型数据,看看能不能正常得到
再改为json的,
如果得不到那就是格式的问题了

json数据解析出错应该怎么办?

JSON数据解析错误处理办法如下:

-JSONValue failed. Error is: Unescaped control character [0x0D]

这个错误就是JSON解析的时候String 的时候出现转义字符。

对应用NSString 里的stringByReplacingOccurrencesOfString:@"r"withString:@"" 取消掉转义字符就OK那!

NSString *json_string1=[json_string stringByReplacingOccurrencesOfString:@"r"withString:@""];

或者是在线工具生成的代码,并不能保证百分百准确的。

ajax success不执行

你好,我也是ajax和json的初学者,我认为问题可能是这些:
1、你的ajax操作是在checkname()的函数里进行的,你是否忘记了执行checkname()函数呢?这个可能有点白痴。
2、不知道你的#myres元素是什么,我觉得应该改写成$('#myres').html(data[0].meg);

3、你可以试着写一个error:function(){alert(‘something’);}看是否出现了错误。追问我好像是因为C#后台的数据没转为json数据。。。

ajax success不执行

你好,我也是ajax和json的初学者,我认为问题可能是这些:
1、你的ajax操作是在checkname()的函数里进行的,你是否忘记了执行checkname()函数呢?这个可能有点白痴。
2、不知道你的#myres元素是什么,我觉得应该改写成$('#myres').html(data[0].meg);

3、你可以试着写一个error:function(){alert(‘something’);}看是否出现了错误。追问我好像是因为C#后台的数据没转为json数据。。。

json数据解析出错应该怎么办

1、执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息: System.IO.FileLoadException: 未能加载文件或程序集“Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。

2、都是通过转码来解决,但是直接转码,是不能达到效果的,例如[jsonStringstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]。这样直接转码是达不到效果的,解析数据的时候,可以先把数据存放在NSdata对象中,再进行转码。

3、ajax获取并解析json数据:<script type="text/javascript">function jsondata(url){ //url 定义变量 方便其他页面直接调用函数$.ajax({url:url,type:"GET", //请求方式dataType:"json", //请求数据类型 success:function(result){ //请求成功,执行以下函数console.log(result);//控制台打印json数据 {code:100,list:[name:"张三",age:"12"]}。

4、Json解析在对象中出现关键字问题,可以通过注解关联解析对象的key来解决这个问题,具体如下:fastjson使用者 @JSONField(name = “switch”) public String myswitch; Gson @SerializedName(“abstract”) public String myabstract;以上如果命名为private则在set和get方法上添加注解。

json数据解析出错应该怎么办

1、执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息: System.IO.FileLoadException: 未能加载文件或程序集“Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。

2、都是通过转码来解决,但是直接转码,是不能达到效果的,例如[jsonStringstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]。这样直接转码是达不到效果的,解析数据的时候,可以先把数据存放在NSdata对象中,再进行转码。

3、ajax获取并解析json数据:<script type="text/javascript">function jsondata(url){ //url 定义变量 方便其他页面直接调用函数$.ajax({url:url,type:"GET", //请求方式dataType:"json", //请求数据类型 success:function(result){ //请求成功,执行以下函数console.log(result);//控制台打印json数据 {code:100,list:[name:"张三",age:"12"]}。

4、Json解析在对象中出现关键字问题,可以通过注解关联解析对象的key来解决这个问题,具体如下:fastjson使用者 @JSONField(name = “switch”) public String myswitch; Gson @SerializedName(“abstract”) public String myabstract;以上如果命名为private则在set和get方法上添加注解。

小程序POST提交表单不执行success事件?

success没执行,那肯定就执行fail了,你添加个fail事件看看返回的错误信息是什么就明白了。
一般发生这种情况都是后台的问题,你只说后台接受数据成功,但它在接受后处理数据时(比如查询数据库)仍然会发生错误的,这时候前端的success事件就不会触发,转而触发fail事件。

小程序POST提交表单不执行success事件?

success没执行,那肯定就执行fail了,你添加个fail事件看看返回的错误信息是什么就明白了。
一般发生这种情况都是后台的问题,你只说后台接受数据成功,但它在接受后处理数据时(比如查询数据库)仍然会发生错误的,这时候前端的success事件就不会触发,转而触发fail事件。

如何返回json形式的错误代码

这种方法有两大步第一步是拼接需要的json数据,第二步是用servlet的内置对象response返回到前台。

2
String 类型的数据可以不用借助任何工具直接返回,只要把它拼接对了就可以。如我需要返回一个{“success”:true,“msg”:“修改失败!”}的json,就可以如下图这样写。(注意,java里的引号要用的转义字符“\”)

3
如果需要返回的是一个list或者别的类的化,需要用到JSONArray的辅助工具类,然后使用response.getWriter().print(),返回到打到前台。具体代码如下图。

如何返回json形式的错误代码

这种方法有两大步第一步是拼接需要的json数据,第二步是用servlet的内置对象response返回到前台。

2
String 类型的数据可以不用借助任何工具直接返回,只要把它拼接对了就可以。如我需要返回一个{“success”:true,“msg”:“修改失败!”}的json,就可以如下图这样写。(注意,java里的引号要用的转义字符“\”)

3
如果需要返回的是一个list或者别的类的化,需要用到JSONArray的辅助工具类,然后使用response.getWriter().print(),返回到打到前台。具体代码如下图。

关于jsonp返回回来的数据怎么解析

JSONP 方式返回来的是一个JS 函数名(数据块),可以理解为回调函数。
Jquery 自动帮你实现了JSONP的调用方式。

success : function(data){
//data 可以理解为一个JSON对象。如果使用data的数属性的话,直接使用可以了,跟使用普通的对象类似。
//JSON.stringify(data) ; 使用这种方式可以将对象data 序列化成JSON字符串.
},

返回 来的是一个json数组,不能直接使用.符号,使用data[角标].list

关于jsonp返回回来的数据怎么解析

JSONP 方式返回来的是一个JS 函数名(数据块),可以理解为回调函数。
Jquery 自动帮你实现了JSONP的调用方式。

success : function(data){
//data 可以理解为一个JSON对象。如果使用data的数属性的话,直接使用可以了,跟使用普通的对象类似。
//JSON.stringify(data) ; 使用这种方式可以将对象data 序列化成JSON字符串.
},

返回 来的是一个json数组,不能直接使用.符号,使用data[角标].list

无法从JSON获得价值问题,怎么解决

解决此问题我总结了一下几点

1、首先先查找自己的json文件路径是否正确,

复制代码

错误示范:

$http.get(index.json).success(function(data){

$scope.Y_box=data.Y_box;

})

正确规范:

$http.get('index.json').success(function(data){

$scope.Y_box=data.Y_box;

})

复制代码

2、查看从后台获取的数据是否存在,查看方法:

复制代码

app.controller('test',function($scope,$http){

$http.get('json.json').success(function(data){

$scope.Y_box=data.Y_box;

alert('$scope.Y_box');//通过弹框来查看是否为获取到数据,如果弹出undefined,那么说明没有获取到数据,请从新获取

})

})

复制代码

3、查看HTML页面是否绑定正确:

<!--//有时会犯这样的错误-->

<h4>{item.h4}</h4>

<!--正确写法-->

<h4>{{item.h4}}</h4><!--//获取数组里的 h4 数据-->

4、在渲染数组里数组时,是否渲染的是当前数组里的数组:

json文件:

复制代码

{

"Y_box":[

{

"h4":"我是数组1",

"Y_BoxMain":[

{"txt":"数组1里的数组1"},

{"txt":"数组1里的数组2"},

{"txt":"数组1里的数组3"}

]

},

{

"h4":"我是数组2",

"Y_BoxMain":[

{"txt":"数组2里的数组1"},

{"txt":"数组2里的数组2"},

{"txt":"数组2里的数组3"}

]

},

{

"h4":"我是数组3",

"Y_BoxMain":[

{"txt":"数组3里的数组1"},

{"txt":"数组3里的数组2"},

{"txt":"数组3里的数组3"}

]

}

]

}

复制代码

我们举个例子看看,你是否出现这样的错误:

复制代码

$http.get('json.json').success(function(data){

$scope.Y_box=data.Y_box;

//错误示范

$scope.Y_box1=data.Y_box.Y_BoxMain;//这样是获取不到的,因为data.Y_box是一个数组,没有具体的数据,系统无法判断

//正确规范

// 你必须获取数组里的具体数据,如获取第一个数组里的数据

$scope.Y_box1=data.Y_box[0].Y_BoxMain;

})

复制代码

以下是一个渲染数据的完整代码:

复制代码

//html:

<!DOCTYPE html>

<html ng-app="mk">

<head lang="en">

<meta charset="UTF-8">

<title></title>

<style>

.Y_box{

width: 300px;

height: 200px;

border: 1px solid coral;

}

</style>

<script src="angular.js"></script>

<script>

var app=angular.mole("mk",[]);

app.controller('test',function($scope,$http){

$http.get('json.json').success(function(data){

$scope.Y_box=data.Y_box;

})

})

</script>

</head>

<body ng-controller="test">

<div class="Y_box" ng-repeat="item in Y_box">

<h4>{{item.h4}}</h4><!--//获取数组里的 h4 数据-->

<div class="Y_BoxMain">

<ul>

<!--//获取当前数组里的数组===item.Y_BoxMain-->

<li ng-repeat="Data in item.Y_BoxMain">{{Data.txt}}</li>

</ul>

</div>

</div>

</body>

</html>

如何解决“文件上传返回JSON数据,在IE下提示下

dataType
期望返回的数据类型。null、“xml”、“script”或者“json”其中之一。dataType提供一种方法,它规定了怎样处理服务器的响应。这个被直接地反映到jQuery.httpData方法中去。下面的值被支持:
'xml':如果dataType == 'xml',将把服务器响应作为XML来对待。同时,如果“success”回调方法被指定, 将传回responseXML值。
'json':如果dataType == 'json', 服务器响应将被求值,并传递到“success”回调方法,如果它被指定的话。
'script':如果dataType == 'script', 服务器响应将求值成纯文本。
默认值:null(服务器返回responseText值)

如何解决“文件上传返回JSON数据,在IE下提示下

dataType
期望返回的数据类型。null、“xml”、“script”或者“json”其中之一。dataType提供一种方法,它规定了怎样处理服务器的响应。这个被直接地反映到jQuery.httpData方法中去。下面的值被支持:
'xml':如果dataType == 'xml',将把服务器响应作为XML来对待。同时,如果“success”回调方法被指定, 将传回responseXML值。
'json':如果dataType == 'json', 服务器响应将被求值,并传递到“success”回调方法,如果它被指定的话。
'script':如果dataType == 'script', 服务器响应将求值成纯文本。
默认值:null(服务器返回responseText值)

我读取json数据明明是 { 开头,}结尾的。可android为啥总是报错:JSONObject text must begin with '{' a

说不定你{"success":true,"msg":"成功"}在程序里是用双引号引起来的呢,把一个String类型的字符串和把一个字符串转换成JSON数据是不一样的,区别就是{"result":"OK","message":"操作成功"}与“{"result":"OK","message":"操作成功"}”

酷申汽车网还为您提供以下相关内容希望对您有帮助:

请问后台返回json数据用ajax接收时不执行success是怎么回事?

先指定返回text类型数据,看看能不能正常得到 再改为json的,如果得不到那就是格式的问题了

如何解决数据解析失败

如果不清楚是哪几个软件冲突,可行的解决办法是使用360安全卫士的系统优化,在一键优化里,关闭一些不常用的软件启动。这样开机后运行的程序少一些,冲突的概率会下降。 5.对于另一种应用程序出错,截图显示“应用程序出错,**...

json数据解析出错应该怎么办

执行以下函数console.log(result);//控制台打印json数据 {code:100,list:[name:"张三",age:"12"]}。4、Json解析在对象中出现关键字问题,可以通过注解关联解析对象的key来解决这个问题,具体如下:fastjson使用者 @JSONF...

小程序POST提交表单不执行success事件?

success没执行,那肯定就执行fail了,你添加个fail事件看看返回的错误信息是什么就明白了。一般发生这种情况都是后台的问题,你只说后台接受数据成功,但它在接受后处理数据时(比如查询数据库)仍然会发生错误的,这时候前端的...

json数据解析出错应该怎么办?

JSON数据解析错误处理办法如下:-JSONValue failed. Error is: Unescaped control character [0x0D]这个错误就是JSON解析的时候String 的时候出现转义字符。对应用NSString 里的stringByReplacingOccurrencesOfString:@"\r"with...

extjs中submit提交后不进入success也不进入failure

你的json返回值不对 要执行success或failure,需在返回的json中有如下字段 执行success里面的操作 {success:true} 执行failure里面的操作 {success:false}

ajax跨域请求jsonp出现Uncaught SyntaxError,该如何解决?

第一个是修改服务器,ajax返回数据,也就是dataType类型设置为jsonp,jsonp是专门为解决跨域问题而生的,具体用法自行百度。第二个方法,就是先用自己服务器后台执行curl,抓取目标服务器上的文件,在用前端ajax获取服务器...

求教:IE读取json数据为undefined,其它浏览器都是好的。

用ajax实现了一个功能,在IE8和IE9中都能正常运行(大概是IE8和IE9都提供了原生的JSON解析和序列化),但是一旦切换到兼容模式就报JSON未定义的错误,解决方法是:判断当前浏览器是否支持JSON对象,如果不支持,则引入json2...

如何使用Python处理JSON数据

在JSON中,数据以名称/值(name/value)对表示;大括号内存储对象,每个名称后跟':'(冒号),名称/值对之间要用(逗号)分隔;方括号包含数组,值以(逗号)分隔。JSON格式数据的示例:{ "book1":{"title": "Python ...

angularjs使用jsonp跨域报错success_jsonpCallback is not defined_百...

jsonp异步请求是执行了A后,不管A是否执行成功都可以再往下继续执行B,C,D;succes

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

Top