我是JavaScript和jQuery的完全初学者。
当我查询我的API时,我通常会得到这样的JSON:
{
"soc": 9271,
"series": [
{
"year": 2013,
"estpay": 370
},
{
"year": 2012,
"estpay": 430
}
]
}
但是如果我的查询无效,我会得到这样的JSON:
{
"error": "Some message here . . . .."
}
所以我的问题是 - 检测错误信息然后设置IF / ELSE类型的响应的语法是什么?即如果错误消息执行此操作..如果没有错误消息执行其他操作。
答案 0 :(得分:1)
您可以尝试使用已内置此方法的已实施JSON工具。
其次你可以尝试使用它:
if (response){
try{
a=JSON.parse(response);
}catch(e){
alert(e); //error in the above string(in this case,yes)!
}
}
祝你好运!
答案 1 :(得分:1)
检查是否有错误
// assume response is received as string
var data = JSON.parse(response)
...
if (data.error) {
// handle error
console.log(data.error);
return;
}
// handle code normally
...
答案 2 :(得分:0)
var o = JSON.parse(response);
if('error' in o){
// error in response
}
答案 3 :(得分:0)
假设JSON对象存储在变量result
中。
您可以尝试这样的事情:
var result = JSON.parse(myQuery()); // myQuery() is the function that executes your query
if (result.error) {
alert("Error message here !");
} else {
alert("Hallelujah !");
}
答案 4 :(得分:0)
检查响应数据中是否存在“错误”键现在可以完成这项工作,但是为了使您的API符合REST协议并且更具可伸缩性/动态性,我将基于HTTP状态代码进行错误处理和消息。您可以参考此列表以查看什么是有效响应以及每个状态代码的含义。 https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
这是一个关于如何在jQuery中处理状态代码的简短示例:
$.ajax({
statusCode: {
500: function(xhr) {
if(window.console) console.log(xhr.responseText);
}
}
});
此外,你还应该解析JSON以查看它是否有效,就像Ido Michael建议的那样
答案 5 :(得分:0)
这可能是一个很好的结构
try {
data = JSON.parse(response);
} catch(e) {
data = false;
}
if(!data || data.error) {
// handel error
} else {
// data is good
}
答案 6 :(得分:-1)
感谢您的快速回复。我一直试图实施你的建议,但由于初学者的无知,我没有成功。我已经举了一个我正在使用的代码示例。
我只需要从$ .get中获取JSON来检查单词“error”。
如果出现“错误”,那么我需要var nipay来包含类似“不可用”的内容。
否则var nipay = maxBy(“year”,data.series).estpay
$.get("http://my_api_url",
function(data) {
var nipay = maxBy("year", data.series).estpay ;
$("#box1").html("<p><b>NI:</b> " + nipay + " GBP/week </p>")
});