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

TypeScript中能否遍历含\n和`字符的JSON对象?如何清理冗余字符?

如何处理带转义字符与换行的JSON字符串并遍历?

嘿,这个问题我熟!当然能遍历这个JSON对象,但你现在手里的其实是被转义字符和换行符包裹的字符串形式"伪JSON",不是直接可操作的JSON对象,这才是遍历失败的根源。下面一步步教你怎么处理:

第一步:清理冗余字符,得到标准JSON字符串

你的原始内容带转义双引号(\")、换行符,还有多余的尾逗号,得先把这些干扰项清理掉:

  1. 把所有\"替换成",移除转义标记
  2. 删除末尾键值对后的多余逗号(JSON语法不允许最后一个键值对后加逗号,否则解析会报错)
  3. 可选:移除换行符(换行符不影响解析,但清理后更整洁)

举个例子,你的原始字符串:

"{
 \"Foo\" : \"1234\",
}"

清理后会变成标准JSON字符串:

{
 "Foo" : "1234"
}

第二步:解析成可操作的JSON对象,然后遍历

根据你使用的编程语言,用对应的JSON解析工具把清理后的字符串转换成对象,之后就能正常遍历了。这里给两个常见语言的示例:

JavaScript 示例

// 原始带转义的字符串
const rawJsonStr = "{\\n \\\"Foo\\\" : \\\"1234\\\",\\n}";

// 清理冗余字符
const cleanedStr = rawJsonStr
  .replace(/\\"/g, '"')       // 替换转义双引号
  .replace(/,\s*}/, '}')     // 移除尾逗号
  .replace(/\\n/g, '');      // 移除转义换行

// 解析成JSON对象
const jsonObj = JSON.parse(cleanedStr);

// 开始遍历
for (const [key, value] of Object.entries(jsonObj)) {
  console.log(`键:${key},值:${value}`); // 输出:键:Foo,值:1234
}

Python 示例

import json

# 原始带转义的字符串(如果是从外部获取的,可能会带转义反斜杠)
raw_json_str = '"{\n \\"Foo\\" : \\"1234\\",\n}"'

# 先去掉外层的引号,再清理冗余字符
cleaned_str = raw_json_str.strip('"')\
                          .replace(',\n}', '\n}')\
                          .replace('\\"', '"')

# 解析成字典(Python中JSON对象对应字典)
json_obj = json.loads(cleaned_str)

# 遍历键值对
for key, value in json_obj.items():
    print(f"键:{key},值:{value}") # 输出:键:Foo,值:1234

关键提醒

你之前遍历失败,本质是把字符串当成了JSON对象来操作——字符串本身没有键值对结构,只有解析成对应语言的对象(比如JS的Object、Python的dict)后,才能进行遍历、取值等操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:24:55