代码之家  ›  专栏  ›  技术社区  ›  almo

Ionic 3-以格式化方式显示来自HTTP请求的JSON响应

  •  1
  • almo  · 技术社区  · 7 年前

    我的Ionic3应用程序向Rails后端发出HTTP请求。如果请求成功,应用程序将执行它必须执行的任何操作,当出现错误时,API将返回HTTP错误代码和JSON错误消息。

    我希望我的应用程序以一种友好的方式为用户显示带有错误消息的警报,而不是JSON。

    error => {
      let alert = this.alertCtrl.create({
      title: 'Algo não deu certo...',
      subTitle: error.text(),
      buttons: ['OK']
    });
    

    这将导致:

    enter image description here

    我想把它格式化。我知道我可以循环遍历这些项并显示它们,但是我想知道是否有一种更简单的方法/更少的代码来完成它。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Marko Savic    7 年前

    如果我理解的很好,你需要这样的东西:

    const error = {
      "from": ["can't be blank"],
      "to": ["can't be blank"],
      "passenger": ["must exist"],
    };
    
    const errorMessage = Object.keys(error).reduce((acc, cur) => `${acc} ${cur} ${error[cur]}`, '').slice(1);
    
    console.log(errorMessage);

    这是一个基本的例子 Array#Reduce .

    下面是另一个使用格式化文本的示例:

    const error = {
      "from": ["can't be blank"],
      "to": ["can't be blank"],
      "passenger": ["must exist"],
    };
    
    const errorMessage = Object.keys(error).reduce((acc, cur) => `${acc} ${cur.charAt(0).toUpperCase()}${cur.slice(1)}: ${error[cur]}!`, "").slice(1);
    
    console.log(errorMessage);
        2
  •  0
  •   AbdulAzeem    7 年前

    由于错误只有在返回错误时才会执行,因此您可以以如下文本形式给出错误消息:

    error => {
    let alert = this.alertCtrl.create({
    title: 'Algo não deu certo...',
    subTitle: 'Your error Message',
    buttons: ['OK']
    });
    
    推荐文章