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

.NET 6中JSON序列化后保存带引号和转义符问题求助

问题原因与解决方案

问题根源

你调用JsonConvert.SerializeObject(serialized)时,serialized本身已经是JSON格式的字符串了。JSON序列化字符串类型的变量时,会把整个字符串当作普通文本处理:给它包裹外层双引号,同时对字符串内部的双引号进行转义(变成\"),这就是你看到异常格式的原因。

解决方法

根据你的实际场景选择对应方案:

场景1:你有原始对象需要序列化

如果serialized是从某个.NET对象序列化得到的字符串,直接跳过中间字符串步骤,序列化原始对象后写入:

// 假设yourOriginalObject是生成JSON的原始对象
string json = JsonConvert.SerializeObject(yourOriginalObject);
using (StreamWriter sw = File.AppendText(CIDRTrackingLocation))
{
    sw.WriteLine(json);
}

场景2:你已经有现成的JSON字符串

如果serialized本身就是正确的JSON字符串,直接写入即可,不需要再次序列化:

using (StreamWriter sw = File.AppendText(CIDRTrackingLocation))
{
    sw.WriteLine(serialized);
}

验证测试

你可以通过以下代码快速验证两种写法的差异:

string testJson = "{\"cidrs\":[{\"cidr\":null}]}";
// 错误写法:重复序列化字符串
string wrongResult = JsonConvert.SerializeObject(testJson);
// 输出结果:"{\"cidrs\":[{\"cidr\":null}]}"

// 正确写法:直接使用原JSON字符串
string correctResult = testJson;
// 输出结果:{"cidrs":[{"cidr":null}]}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 00:14:59