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

如何移除JSON嵌套值中的" 将字符串型数组转为原生JSON结构

嵌套字符串JSON还原为原生结构方案

核心问题说明

你遇到的是典型的JSON多重序列化问题:data、origin字段的数组内容被额外序列化成了带引号的字符串,直接删除引号极易破坏JSON转义规则导致语法错误,正确处理方式是逐层反序列化,而非硬替换特殊字符。

处理步骤

  • 第一步:对最外层源JSON做第一次反序列化,此时得到的对象中,data字段为字符串类型
  • 第二步:对data字段的字符串值做第二次反序列化,得到原生数组结构,此时数组内对象的origin字段仍为字符串类型
  • 第三步:遍历data解析后的数组,对每个对象的origin字段值做第三次反序列化,替换原有字符串值
  • 第四步:如需输出标准JSON字符串,对最终处理完成的对象做一次序列化即可

代码实现

JavaScript/Node.js 版本

// 替换为你实际拿到的源JSON字符串即可
const sourceStr = `{
  "data": "[{\"color\":\"blue\",\"origin\":\"[{\\"state\\":\\"USA\\"},{\\"state\\":\\"AFRICA\\"}]\"}]"
}`

// 逐层解析
const result = JSON.parse(sourceStr)
result.data = JSON.parse(result.data)
result.data.forEach(item => {
  item.origin = JSON.parse(item.origin)
})

// 输出最终合规JSON
const targetJson = JSON.stringify(result, null, 2)
console.log(targetJson)

Python 版本

import json

# 替换为你实际拿到的源JSON字符串即可
source_str = '{"data": "[{\\"color\\":\\"blue\\",\\"origin\\":\\"[{\\"state\\":\\"USA\\"},{\\"state\\":\\"AFRICA\\"}]\\"}]"}'

# 逐层解析
result = json.loads(source_str)
result["data"] = json.loads(result["data"])
for item in result["data"]:
    item["origin"] = json.loads(item["origin"])

# 输出最终合规JSON
target_json = json.dumps(result, indent=2, ensure_ascii=False)
print(target_json)

注意事项

禁止直接使用全局字符串替换删除引号:嵌套JSON内部存在大量转义字符,硬替换会直接破坏JSON语法结构,逐层调用官方JSON解析方法是兼容性最高、不会出现语法错误的方案,不管嵌套多少层字符串格式的JSON内容,都可以用该方法逐层还原。


内容的提问来源于stack exchange,提问作者ssDev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 06:24:16