Xap*_*ann 7 c# json system.text.json jsonelement
我需要将 JsonElement 转换为字符串,但没有任何回车符、制表符或空格。一个简单的 ToString() 可以工作,但将它们留在:
data.ToString()
Run Code Online (Sandbox Code Playgroud)
结果:
"{\r\n "字段1": "值1",\r\n "字段2": "值2"\r\n }"
寻找:
"{"字段1":"值1","字段2":"值2"}"
当然,我可以执行一个简单的查找和替换字符串命令。但是,有些字段将包含回车符、制表符或空格,我不想更改它们。
编辑:无法删除此问题,请有人删除此问题,因为它已经得到答复。
hal*_*ldo 10
在 .NET 6 中,您可以使用JsonNode.ToJsonString()(使用 System.Text.Json.Nodes 命名空间),但您需要先从 转换JsonElement为JsonObject:
var jsonString = JsonObject.Create(data).ToJsonString();
Run Code Online (Sandbox Code Playgroud)
ToJsonString()接受JsonSerializerOptions作为参数,因此您可以指定WriteIndented是否想要不同的行为,但默认情况下它将输出WriteIndented = false(这是您想要的格式)。
可以转换为扩展方法:
public static class Extensions
{
public static string ToJsonString(this JsonElement element, bool indent = false)
=> element.ValueKind != JsonValueKind.Object
? ""
: JsonObject.Create(element).ToJsonString(new JsonSerializerOptions { WriteIndented = indent });
}
// usage
// non-indented
var jsonString = element.ToJsonString();
// indented
var jsonString = element.ToJsonString(true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4683 次 |
| 最近记录: |