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

使用jsoncpp实现字符串转JSON时出现多余字符的问题排查

问题解决:JSON导入时字符串重复转义

问题根源

你遇到的是双重序列化导致的转义冗余:编辑后的TXT字符串被当作JSON格式字符串再次序列化,原本的单个反斜杠被转义成两个,同时多套了一层引号。

修正方案

核心原则

  • 读取TXT时直接获取原始字符串,不额外处理转义
  • 写入JSON时,直接将字符串赋值给dialogue字段,不要提前用JSON序列化工具处理该字符串

修正后的代码示例(Python)

import json

# 1. 读取编辑后的TXT内容,直接获取原始字符串
with open("edited_dialogues.txt", "r", encoding="utf-8") as txt_f:
    new_dialogue = txt_f.read().strip()

# 2. 加载原始JSON数据
with open("original.json", "r", encoding="utf-8") as json_f:
    json_data = json.load(json_f)

# 3. 直接赋值给dialogue字段,无需额外序列化
for item in json_data:
    if "dialogue" in item:
        item["dialogue"] = new_dialogue

# 4. 写入JSON,由json.dump自动处理正确转义
with open("output.json", "w", encoding="utf-8") as out_f:
    json.dump(json_data, out_f, ensure_ascii=False, indent=2)

关键说明

  • 避免使用json.dumps()处理单个dialogue字符串:该方法会把普通字符串转成JSON格式的字符串(比如把\{Hello there变成"\{Hello there"),再被json.dump()序列化一次就会变成""\\{Hello there""
  • 读取TXT时不要手动解析转义字符:Python的read()方法会直接读取文件中的原始字符,保留编辑后的字符串格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 18:49:54