如何从接口返回的对象列表中提取指定字段生成POST请求所需结构
实现思路
你需要对users下的data数组做字段映射,保留id和group两个字段,外层结构原样复用即可,不需要单独提取属性数组。
常见场景代码实现
Groovy 场景(匹配你用到的{it.xx}闭包语法)
原响应对象假设命名为resp,转换代码如下:
def targetData = [ success: resp.success, body: [ users: resp.body.users.collect { user -> [ type: user.type, // 遍历data数组,只保留需要的两个字段 data: user.data.collect { [id: it.id, group: it.group] } ] } ] ] // 直接将targetData序列化为JSON即可发送POST请求
JavaScript 场景
原响应对象假设命名为resp,转换代码如下:
const targetData = { success: resp.success, body: { users: resp.body.users.map(user => { return { type: user.type, data: user.data.map(item => ({ id: item.id, group: item.group })) } }) } }
补充说明
你之前的写法只提取了id属性数组,是因为没有对每个data条目做对象重建。用collect/map方法遍历的同时生成仅包含目标字段的新对象,就能匹配你需要的结构,同时兼容users数组有多个元素的场景。
内容的提问来源于stack exchange,提问作者vVv
相关产品推荐
相关产品推荐

