Python如何将合法JSON内部的JSON字符串字段转换为合法JSON结构
嵌套JSON字符串字段转标准JSON对象解决方案
核心逻辑非常简单:只需将string_info字段的字符串值单独做一次JSON解析,再替换回原对象的对应字段即可,不同常用场景的实现方法如下:
1. JavaScript 实现
// 读取原始JSON内容 const rawData = `{"id":1 , "name": "John","string_info": "{\"color\":\"blue\", \"age\":\"24\"}"}`; // 先解析完整的原始JSON const parsedData = JSON.parse(rawData); // 单独解析string_info字段的嵌套JSON字符串,替换原字段 parsedData.string_info = JSON.parse(parsedData.string_info); // 如需输出标准JSON字符串可执行以下方法 console.log(JSON.stringify(parsedData, null, 2));
2. Python 实现
import json # 读取原始JSON内容 raw_data = '''{"id":1 , "name": "John","string_info": "{\"color\":\"blue\", \"age\":\"24\"}"}''' # 解析完整的原始JSON parsed_data = json.loads(raw_data) # 单独解析string_info字段的嵌套JSON字符串,替换原字段 parsed_data["string_info"] = json.loads(parsed_data["string_info"]) # 如需输出标准JSON字符串可执行以下方法 print(json.dumps(parsed_data, indent=2, ensure_ascii=False))
3. 命令行快速处理(使用jq工具)
如果只是临时处理单条JSON数据/JSON文件,可以直接用jq的fromjson内置方法,一行命令完成转换:
# 处理单条字符串 echo '{"id":1 , "name": "John","string_info": "{\"color\":\"blue\", \"age\":\"24\"}"}' | jq '.string_info |= fromjson' # 处理本地JSON文件(input.json是源文件,output.json是转换后文件) jq '.string_info |= fromjson' input.json > output.json
注意:如果你的业务场景中
string_info可能为空、或者内容不是合法JSON格式,建议在解析前加校验和异常捕获逻辑,避免程序崩溃。
内容的提问来源于stack exchange,提问作者LLL
相关产品推荐
相关产品推荐

