You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:06:03