javascript - 检查 JSON 响应中是否存在未定义类型

标签 javascript json

我不久前问过类似的问题,但意识到我离主题太远了。我正在调用我的后端,它读取 JSON 文件并返回响应

public function getData()
{
    return json_decode(file_get_contents($file_path, true));
}

从后端返回的文件采用以下形式

[
  [
    //Some data
  ],
  [
    //Some data
  ],
  [
    {
      "Category": "basketball",
      "Count": 12
    },
    {
      "Category": "football",
      "Count": 34
    },
    {
      "Category": "baseball",
      "Count": 244
    },
    {
      "Category": "softball",
      "Count": 11
    }
  ]
]

所以它是数组和对象数组的混合体。上面的对象数组是我感兴趣的。在前端,我试图处理这些数据。目前我正在做类似的事情

const catOne = response.data[2][0]['Count'];
const catTwo = response.data[2][1]['Count'];
const catThree = response.data[2][2]['Count'];
const catFour = response.data[2][3]['Count'];

但是我注意到,有时传回的文件没有 4 个类别。因此,我收到错误

TypeError: Cannot read property 'Count' of undefined

我想知道处理这个问题的最佳方法是什么?我真的不想要大量的 if/else 语句,因为这看起来很困惑。我可以进行某种类型的三元检查来查看该值是否未定义吗?

谢谢

最佳答案

我会采取以下路径: 创建一个类别数组,然后对其进行迭代以进行计数,因为您没有指定您的用例,所以我不确定这是否适用于您。

但是你会用它做的事情是这样的:

const categories = [];
for ( let i = 0; i < response.data[2].length; i++) {
    let response_data = response.data[2][i];
    if (response_data !== undefined) {
         categories.push(response_data); // You could also be pushing the count in here
    }
}

关于javascript - 检查 JSON 响应中是否存在未定义类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56571172/

相关文章:

javascript - 可重用组件来等待数据

android - 为 Android 应用程序创建一个可解析的 JSON 文件

mysql - 选择 json 对象数组

php - 如何从YouTube Feed中提取RTSP链接

javascript - 在发送 ajax 提交之前验证表单

javascript - jQuery REST Session 不起作用,但在 POSTMan 中有效

javascript - jquery设置初始值

ajax - 将POST与core-ajax-dart结合使用时无法将JSON数据发送到服务器REST API

ios - 更新自定义单元格中的 UILabel 文本

javascript - 使用 window.onerror 获取实际的 Javascript Error 对象