如何处理JSON错误消息

时间:2016-03-31 07:35:03

标签: javascript jquery

我是JavaScript和jQuery的完全初学者。

当我查询我的API时,我通常会得到这样的JSON:

{
  "soc": 9271,
  "series": [
    {
      "year": 2013,
      "estpay": 370
    },
    {
      "year": 2012,
      "estpay": 430
    }
  ]
}

但是如果我的查询无效,我会得到这样的JSON:

{
  "error": "Some message here . . . .."
}

所以我的问题是 - 检测错误信息然后设置IF / ELSE类型的响应的语法是什么?即如果错误消息执行此操作..如果没有错误消息执行其他操作。

7 个答案:

答案 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>")
});