我需要一个从 JsonDocument 获取 JSON 字符串的示例。我可以获取属性RootElement.GetProperty("ItemName")然后调用,.GetString()但看不到将根元素作为 JSON 字符串获取的方法?
Alb*_*rto 16
这里有一个例子:
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());
}
Run Code Online (Sandbox Code Playgroud)
为了更容易使用,您可以将其放在扩展方法中,例如:
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());
}
}
Run Code Online (Sandbox Code Playgroud)
并像这样使用它:
JsonDocument jdoc = JsonDocument.Parse("{\"a\":123}");
string json = jdoc.ToJsonString();
Run Code Online (Sandbox Code Playgroud)
小智 9
我使用 RootElement 获取 JsonElement,然后调用 .ToString()。
JsonDocument jdoc = JsonDocument.Parse("{\"a\":123}");
string json = jdoc.RootElement.ToString();
Run Code Online (Sandbox Code Playgroud)