如何将嵌套在JSON中的JSON字符串转换为数组?
如何将嵌套在JSON中的JSON字符串转换为数组
没问题,这个问题其实很常见——就是处理嵌套在JSON里的JSON字符串对吧?核心思路是先把这些字符串形式的JSON解析成可操作的对象,再把它们收集到数组里就行。我给你用两种主流编程语言来演示:
Python 实现步骤
Python的标准json模块就能轻松搞定这个需求:
- 导入
json模块,这是处理JSON的标配工具 - 解析外层JSON(如果原始数据是字符串的话,先用
json.loads()转成字典;如果已经是字典就直接用) - 分别解析
居住地址和办公地址这两个JSON字符串,转成字典 - 把这两个字典放进列表(也就是Python里的数组)
完整代码示例
import json # 原始数据(如果是从文件/接口拿到的字符串,先做json.loads(original_str)转成字典) original_data = { "最高学历": "研究生", "公司": "ABB LIMITED", "SBI职位": "ASSISTANT DIRECTOR", "是否持有SBI卡": "是", "近六个月是否申请过SBI业务": "否", "是否持有信用卡": "是", "是否关联SBI合作银行": "否", "用户账号": "9876545678", "居住地址": "{\"门牌号\":\"12\",\"地址行1\":\"dfffsfsf\",\"地址行2\":\"wrwrw\",\"邮政编码\":\"600017\",\"城市\":\"金奈\",\"邦\":\"泰米尔纳德邦\"}", "办公地址": "{\"门牌号\":\"2323\",\"地址行1\":\"sdsdsdsd\",\"地址行2\":\"sdfds\",\"邮政编码\":\"600017\",\"城市\":\"金奈\",\"邦\":\"泰米尔纳德邦\"}" } # 解析嵌套的JSON字符串 residential_addr = json.loads(original_data["居住地址"]) office_addr = json.loads(original_data["办公地址"]) # 转换为数组(Python列表) address_array = [residential_addr, office_addr] # 输出结果验证 print("转换后的地址数组:") print(address_array)
JavaScript 实现步骤
如果是前端或者Node.js环境,用原生的JSON.parse()就能处理:
- 获取原始的JSON对象
- 用
JSON.parse()分别解析居住地址和办公地址的字符串 - 把解析后的对象放进数组
完整代码示例
// 原始JSON对象(如果是字符串的话,先JSON.parse(originalStr)转成对象) const originalData = { "最高学历": "研究生", "公司": "ABB LIMITED", "SBI职位": "ASSISTANT DIRECTOR", "是否持有SBI卡": "是", "近六个月是否申请过SBI业务": "否", "是否持有信用卡": "是", "是否关联SBI合作银行": "否", "用户账号": "9876545678", "居住地址": '{"门牌号":"12","地址行1":"dfffsfsf","地址行2":"wrwrw","邮政编码":"600017","城市":"金奈","邦":"泰米尔纳德邦"}', "办公地址": '{"门牌号":"2323","地址行1":"sdsdsdsd","地址行2":"sdfds","邮政编码":"600017","城市":"金奈","邦":"泰米尔纳德邦"}' }; // 解析嵌套JSON字符串 const residentialAddr = JSON.parse(originalData.居住地址); const officeAddr = JSON.parse(originalData.办公地址); // 转为数组 const addressArray = [residentialAddr, officeAddr]; // 输出结果验证 console.log("转换后的地址数组:"); console.log(addressArray);
核心总结
不管用什么语言,步骤都是一致的:
- 先解析嵌套的JSON字符串:把字符串格式的JSON转成编程语言中的可操作对象(字典/对象)
- 再收集为数组:把这些解析好的对象放进数组(列表)里,就完成转换啦
内容的提问来源于stack exchange,提问作者Manikandan P
相关产品推荐
相关产品推荐

