C# 如何把含有换行、缩进、转义符的Json字符串转换为没有换行、缩进、转义符的
时间: 2024-09-25 21:13:35 浏览: 45
JSON格式化和查看器(客户端工具)-C#-winform-.net4.8
在C#中,如果你有一个含有换行、缩进和转义字符的JSON字符串,并想将其转换为紧凑格式(去除空白),你可以使用`JsonTextReader`和`JsonTextWriter`配合工作,同时关闭它们的`WriteRawJson`选项。以下是一个简单的示例:
```csharp
using Newtonsoft.Json;
using System.IO;
// 假设你的JSON字符串叫jsonString
string jsonString = @"{
\"key\": \"value\\nwith\\tindent\",
\"anotherKey\": \"\\u00AB escape sequence \"
}";
// 创建一个新的JsonTextWriter实例
JsonWriter writer = new StringWriter();
writer.WriteRaw(jsonString); // 默认写入原始格式的JSON
// 使用JsonTextReader读取并清除多余空白
JsonTextReader reader = new JsonTextReader(writer);
reader.Read(); // 跳过开头的开始大括号 '{'
while (reader.Read())
{
if (reader.TokenType == JsonToken.String)
reader.Value = ((JsonString)reader.Value).Value.Replace("\\n", "").Replace("\\t", ""); // 替换换行和制表符
}
// 将清理后的JSON返回
string compactJson = writer.ToString();
```
这将删除所有的换行和制表符,但不会改变转义字符(如`\n`会被替换为`"n"`)。
阅读全文