【问题标题】:How do I recognize an empty JSON object in JS returned by my Rails controller? [duplicate]如何识别 Rails 控制器返回的 JS 中的空 JSON 对象? [复制]
【发布时间】:2018-03-14 16:21:18
【问题描述】:

如何在 Javascript 中检查空 JSON 对象?我以为关键是

var isEmpty = (response || []).length === 0;

但这不是。在我的 JS 控制台中,我尝试过

jsonresp = {}
{}
jsonresp.length
undefined

这是什么原因导致我有一个 Ruby on Rails 控制器,它返回以下内容

render json: job_id.eql?(cur_job_id) ? {} : json_obj

在控制器返回“{}”的情况下,我在 JS 端无法识别它是否为空。

【问题讨论】:

  • if(Object.keys({}).length > 0){console.log("YaY")}

标签: javascript ruby-on-rails json render


【解决方案1】:

你也可以试试:

if (typeof jsonresp == 'undefined' || typeof jsonresp == 'null'){

// some logic here

}

【讨论】:

    【解决方案2】:

    您可以使用Object.keys() 函数将对象的键作为数组获取,然后检查该数组是否为空。

    var obj = {};
    var arr = Object.keys(obj);
    console.log(arr);
    console.log("Is Empty : " + (arr.length == 0));

    【讨论】:

      【解决方案3】:

      ? 很快:

      const isEmpty = !Object.keys(jsonresp).length

      【讨论】:

      • 感谢您的更改 - 差点被否决 :-)
      • @RandyCasburn 希望对你有所帮助:)
      • 您的第一个答案没有帮助,因为它明显错误!但是您对其进行了编辑和更正……所以一切都很好。
      猜你喜欢
      • 2017-06-29
      • 2014-03-10
      • 1970-01-01
      • 1970-01-01
      • 2016-12-08
      • 1970-01-01
      • 2021-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多