React Native中如何过滤JSON响应提取符合voidType条件的行程数据?
React Native接口JSON响应过滤实现方案
首先你给出的原始响应JSON示例格式有笔误,外层实际应为数组结构,处理前请先确认接口返回的是合法的JSON数据。
实现逻辑
- 遍历原始响应的每一条行程条目
- 用
Array.some()方法检查条目下tripLineItemDetails数组是否存在voidType为0的子项,存在则保留该条目 - 对保留的条目,可按需过滤
tripLineItemDetails数组,只保留voidType为0的子项(匹配你给出的输出示例要求) - 最后将处理后的条目组装为要求的输出格式即可
完整代码示例
// apiResponse为接口返回、已解析完成的JS数组对象,如果是JSON字符串需要先用JSON.parse()转换 const filterTripData = (apiResponse) => { // 筛选符合条件的行程条目 const filteredTrips = apiResponse.filter(trip => { return trip.tripLineItemDetails.some(item => item.voidType === 0) }).map(trip => { // 过滤条目内的子项,只保留voidType为0的内容,不需要可删除这段map逻辑 return { ...trip, tripLineItemDetails: trip.tripLineItemDetails.filter(item => item.voidType === 0) } }) // 组装最终输出格式 return { tripDateLineItems: filteredTrips } } // 调用方法 const finalResult = filterTripData(你的接口返回数据)
补充说明
Array.some()方法找到第一个符合条件的子项就会终止遍历,性能优于全量遍历的Array.filter()判断。如果用axios等请求库,会自动把接口返回的JSON字符串转为JS对象,不需要额外调用JSON.parse()处理。
内容的提问来源于stack exchange,提问作者kumar
相关产品推荐
相关产品推荐

