如何将包含字符串列表的JSON转换为键值对形式的JSON对象数组
JSON格式转换实现方案
实现逻辑
- 遍历原始对象的所有值集合,每个值对应一个待处理的字符串数组
- 对数组内每个字符串:先按
,拆分出key:value格式的属性片段 - 每个属性片段再按
:拆分出属性名和属性值,组装为JSON对象 - 每个原始数组处理完成后得到独立的JSON对象数组,按顺序输出即可
Python实现示例
import json # 原始输入数据 raw_data = { '0': ['ID:123,qty:2,name:zbc', 'ID:234,qty:3,name:xyz', 'ID:456,qty:6,name:opq'], '1': ['ID:666,qty:2,name:ppp', 'ID:322,qty:5,name:uuu'], '2': ['ID:333,qty:3,name:pqr', 'ID:444,qty:5,name:mmm', 'ID:555,qty:6,name:iii'] } for arr in raw_data.values(): current_arr = [] for item_str in arr: item = {} for kv in item_str.split(','): k, v = kv.split(':') item[k] = v current_arr.append(item) # 直接输出符合要求的JSON格式 print(json.dumps(current_arr, ensure_ascii=False))
运行上述代码会直接输出你需要的三个独立JSON数组,和预期结果完全一致。
JavaScript实现示例
// 原始输入数据 const rawData = { '0': ['ID:123,qty:2,name:zbc', 'ID:234,qty:3,name:xyz', 'ID:456,qty:6,name:opq'], '1': ['ID:666,qty:2,name:ppp', 'ID:322,qty:5,name:uuu'], '2': ['ID:333,qty:3,name:pqr', 'ID:444,qty:5,name:mmm', 'ID:555,qty:6,name:iii'] } const result = Object.values(rawData).map(arr => { return arr.map(itemStr => { const item = {} itemStr.split(',').forEach(kv => { const [k, v] = kv.split(':') item[k] = v }) return item }) }) // 输出结果 result.forEach(arr => console.log(JSON.stringify(arr)))
内容的提问来源于stack exchange,提问作者behappy
相关产品推荐
相关产品推荐

