You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中如何解析API响应中的动态键值对

解析动态键JSON提取指定字段

你可以通过以下步骤提取data对象中每个子项的employee_id和status:

1. 将API响应转为JavaScript对象

如果API返回的是JSON字符串,先通过JSON.parse()或请求库的内置方法(比如fetch的response.json())转为JS对象。

2. 处理动态键的data对象

由于data的键是未知的动态值,我们可以用Object.values()方法直接提取data下的所有子对象,得到一个数组,再通过map筛选出需要的字段。

示例代码

// 假设apiResponse是解析后的API响应对象
const apiResponse = {
  "status": 1,
  "msg": "success",
  "data": {
    "118377742": {
      "gid": 118377742,
      "employee_id": 1,
      "status": "Present",
      "intime": "2022-09-24 10:42:50"
    },
    "118377785": {
      "gid": 118377785,
      "employee_id": 2,
      "status": "Present",
      "intime": "2022-09-24 09:50:59"
    },
    // 其他子对象...
  }
};

// 提取目标字段
const employeeStatusList = Object.values(apiResponse.data).map(item => ({
  employeeId: item.employee_id,
  status: item.status
}));

// 输出结果:[{employeeId:1, status:"Present"}, {employeeId:2, status:"Present"}, ...]
console.log(employeeStatusList);

3. 边界情况处理

如果部分子对象可能缺失employee_id或status,可以用可选链和空值合并操作符避免报错:

const employeeStatusList = Object.values(apiResponse.data).map(item => ({
  employeeId: item?.employee_id ?? '未知ID',
  status: item?.status ?? '未知状态'
}));

在React Native请求流程中使用

结合fetch请求的完整示例:

import { useState, useEffect } from 'react';
import { View, Text } from 'react-native';

const EmployeeStatusScreen = () => {
  const [employeeList, setEmployeeList] = useState([]);

  useEffect(() => {
    fetch('你的API接口地址')
      .then(response => response.json())
      .then(apiResponse => {
        if (apiResponse.status === 1 && apiResponse.msg === 'success') {
          const list = Object.values(apiResponse.data).map(item => ({
            employeeId: item.employee_id,
            status: item.status
          }));
          setEmployeeList(list);
        }
      })
      .catch(err => console.log('请求失败:', err));
  }, []);

  return (
    <View>
      {employeeList.map((item, index) => (
        <Text key={index}>员工ID: {item.employeeId} - 状态: {item.status}</Text>
      ))}
    </View>
  );
};

export default EmployeeStatusScreen;

内容的提问来源于stack exchange,提问作者Vishali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 08:20:29