如何使用Karate API Framework动态构建指定结构的JSON数据
动态构建目标JSON结构的实现方法
你给出的JSON核心包含两个字段:数组类型的recommendedAssociations、字符串类型的recommendationMsg。其中数组内的每一项公共字段为StudentId,机构ID、状态的字段名会随业务场景变化,动态构建时可按需给对应字段赋值即可,以下是两种常用开发语言的实现示例:
1. Python 实现
- 先初始化基础结构,逐条追加数组元素后序列化即可
import json # 初始化JSON基础结构 result = { "recommendedAssociations": [], "recommendationMsg": "Student Acceptance" } # 模拟从业务侧获取的原始数据,可替换为数据库/接口返回的真实数据 origin_data = [ {"StudentId": "PIP21|23455", "org_id": "23331", "status": "ACCEPT", "org_field": "SchoolID", "status_field": "Status"}, {"StudentId": "DLO14|44445", "org_id": "23331", "status": "ACCEPT", "org_field": "SchoolId", "status_field": "feedbackStatus"}, {"StudentId": "DEF66|43432", "org_id": "2331", "status": "ACCEPT", "org_field": "SchoolId", "status_field": "feedbackStatus"}, {"StudentId": "334|11123", "org_id": "2331", "status": "REJECT", "org_field": "customerOrganizationIdentifier", "status_field": "feedbackStatus"}, ] # 动态填充关联数组 for item in origin_data: association = {"StudentId": item["StudentId"]} # 按业务规则动态赋值字段 association[item["org_field"]] = item["org_id"] association[item["status_field"]] = item["status"] result["recommendedAssociations"].append(association) # 转成标准JSON字符串 json_result = json.dumps(result, indent=4, ensure_ascii=False) print(json_result)
2. JavaScript 实现
- 实现逻辑和Python一致,动态构造对象后序列化即可
// 初始化JSON基础结构 const result = { recommendedAssociations: [], recommendationMsg: "Student Acceptance" } // 模拟业务侧原始数据,可替换为实际业务数据 const originData = [ {StudentId: "PIP21|23455", orgId: "23331", status: "ACCEPT", orgField: "SchoolID", statusField: "Status"}, {StudentId: "DLO14|44445", orgId: "23331", status: "ACCEPT", orgField: "SchoolId", statusField: "feedbackStatus"}, {StudentId: "DEF66|43432", orgId: "2331", status: "ACCEPT", orgField: "SchoolId", statusField: "feedbackStatus"}, {StudentId: "334|11123", orgId: "2331", status: "REJECT", orgField: "customerOrganizationIdentifier", statusField: "feedbackStatus"}, ] // 动态填充关联数组 originData.forEach(item => { const association = {StudentId: item.StudentId} association[item.orgField] = item.orgId association[item.statusField] = item.status result.recommendedAssociations.push(association) }) // 转成标准JSON字符串 const jsonResult = JSON.stringify(result, null, 4) console.log(jsonResult)
其他编程语言的实现逻辑完全一致,核心都是先构造基础对象,再按业务规则动态填充数组元素,最后序列化为JSON格式即可。
内容的提问来源于stack exchange,提问作者Alexander the Great
相关产品推荐
相关产品推荐

