c# - JsonDocument 获取 JSON 字符串

标签 c# .net-core-3.0

我需要一个从 JsonDocument 获取 JSON 字符串的示例。我可以通过 RootElement.GetProperty("ItemName") 获得属性然后调用.GetString()但看不到将根元素作为 JSON 字符串获取的方法?

最佳答案

这里有一个例子:

JsonDocument jdoc = JsonDocument.Parse("{\"a\":123}");

using(var stream = new MemoryStream())
{
    Utf8JsonWriter writer = new Utf8JsonWriter(stream, new JsonWriterOptions { Indented = true });
    jdoc.WriteTo(writer);
    writer.Flush();
    string json = Encoding.UTF8.GetString(stream.ToArray());
}

为了更容易使用,您可以将其放在扩展方法中,例如:
public static string ToJsonString(this JsonDocument jdoc)
{
    using (var stream = new MemoryStream())
    {
        Utf8JsonWriter writer = new Utf8JsonWriter(stream, new JsonWriterOptions { Indented = true });
        jdoc.WriteTo(writer);
        writer.Flush();
        return Encoding.UTF8.GetString(stream.ToArray());
    }
}

并像这样使用它:
JsonDocument jdoc = JsonDocument.Parse("{\"a\":123}");
string json = jdoc.ToJsonString();

关于c# - JsonDocument 获取 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58378409/

相关文章:

c# - Unity Android 前置摄像头 WTF 错误

c# - 如何在 .net core 3.0 中并行运行多个 BackgroundService?

winforms - 如何排除 App.config 被捆绑在 .net core 3 单文件自包含 WinForms 应用程序中的 .exe 中?

c# - 迁移到 .NET Core 3.0 后 swagger 的问题

c# - 如何编写控制外部cmd的c#

c# - 如何使用 AutoFixture 生成编译时未知的任意类型的 stub 对象

c# - 如何在运行时打印控件创建之间的空间?

使用 WCF 身份验证服务的 C# MVC 身份验证.. 几个问题

c# - 使用 .NET core 3.0/System.text.Json 解析 JSON 文件

c# - .net core 3 产生与 2.2 版本不同的浮点结果