删除JSON中integerFields键并保留其内部键值对的技术需求
扁平化JSON节点,将integerFields内部键值对提升到dataSet层级
问题示例
原始JSON结构:
{ "dataSet": { "integerFields": { "patient_display_id": "1", "ehmrn": "123", "enctrid": "456" }, "DecimalFields": { "class": "1", "section": "123", "enctrid": "456" } } }
需求说明
删除integerFields外层键,将其内部所有键值对直接移至dataSet层级下,同时保留DecimalFields原有结构,最终得到目标JSON:
{ "dataSet": { "patient_display_id": "1", "ehmrn": "123", "enctrid": "456", "DecimalFields": { "class": "1", "section": "123", "enctrid": "456" } } }
解决方案
JavaScript实现
const originalData = { "dataSet": { "integerFields": { "patient_display_id": "1", "ehmrn": "123", "enctrid": "456" }, "DecimalFields": { "class": "1", "section": "123", "enctrid": "456" } } }; // 解构提取integerFields和dataSet其余内容 const { integerFields, ...restOfDataSet } = originalData.dataSet; // 合并内容生成新结构 const transformedData = { dataSet: { ...integerFields, ...restOfDataSet } }; // 输出格式化结果 console.log(JSON.stringify(transformedData, null, 2));
Python实现
import json # 原始JSON字符串 original_json_str = '''{ "dataSet": { "integerFields": { "patient_display_id": "1", "ehmrn": "123", "enctrid": "456" }, "DecimalFields": { "class": "1", "section": "123", "enctrid": "456" } } }''' # 解析JSON为字典 data = json.loads(original_json_str) data_set = data["dataSet"] # 取出integerFields内容并删除该键 integer_fields = data_set.pop("integerFields") # 将integerFields键值对合并到dataSet中 data_set.update(integer_fields) # 输出格式化后的JSON print(json.dumps(data, indent=2))
内容的提问来源于stack exchange,提问作者Rakesh
相关产品推荐
相关产品推荐

