如何在生成新JSON文件时保留单引号而非转义为'?
问题解决:保留JSON字符串中的单引号
你的问题出在JSON序列化环节的字符转义处理上,以下是具体解决步骤:
问题根源
System.Text.Json默认序列化逻辑在部分场景下会将单引号转义为HTML实体',导致原字符串Hen's Secret Bra被错误转换。即便你没有显式调用HTML编码方法,也可能因默认配置触发该行为。
修复方案
修改序列化代码,通过指定JsonSerializerOptions禁用不必要的字符转义,确保单引号正常保留:
// 定义序列化配置选项 var serializeOptions = new JsonSerializerOptions { Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping, WriteIndented = true // 可选参数,让生成的JSON格式更易读 }; // 使用带配置的序列化方法写入文件 File.WriteAllText(jsonFile, JsonSerializer.Serialize(sampleNew, serializeOptions));
额外逻辑修正
你的代码中存在一个计数器的逻辑错误:intCounter在foreach循环内部声明,每次循环都会重置为0,导致所有文件都会把0替换成5000,无法实现按文件顺序递增替换。需要将计数器声明移到循环外部:
// 将计数器移至循环外,保证递增逻辑生效 int intCounter = 0; foreach(var jsonFile in jsonFiles) { var newIntCounter = intCounter + 5000; var Counter = intCounter.ToString(); var newCounter = newIntCounter.ToString(); // ... 其余业务代码 ... intCounter++; }
内容的提问来源于stack exchange,提问作者Jason Nathan
相关产品推荐
相关产品推荐

