gpt4 book ai didi

c# - 如何使用 Utf8JsonWriter 编写字符串数组?

转载 作者:行者123 更新时间:2023-12-01 21:35:19 25 4
gpt4 key购买 nike

我正在做一些测试,想使用 Utf8JsonWriter 而不是 JsonSerializer 手动将 JSON 对象写入文件。

我有以下代码:

writer.WriteStartObject();
writer.WriteStartObject("InformationObject");
writer.WriteString("Name", "Info Name");
writer.WriteString("Details", "Info Details");
writer.WriteStartArray("Tags");

Tags 数组属性中,我想写一个字符串数组,但是如果我尝试使用 WriteStringWriteStartArray< 之后的任何其他方法 调用,代码在运行时失败。

没有“WriteArrayContents”方法或类似方法,所以我很好奇您打算在 WriteStartArray 之后调用什么方法来实际写入数组内容?

我只是误解了 JSON 的工作方式,还是我错过了 MS API 的某些内容?

最佳答案

您需要调用WriteStringValue()将字符串值写入数组:

Writes a string text value (as a JSON string) as an element of a JSON array.

而且,更一般地说,您需要使用 Write*Value() methods of Utf8JsonWriter 之一(例如 WriteBooleanValue()WriteNumberValue() )写入适当类型的数组元素。

因此您的 Write() 方法应该如下所示:

public override void Write(Utf8JsonWriter writer, InformationObject value, JsonSerializerOptions options)
{
writer.WriteStartObject();
writer.WriteStartObject("InformationObject");
writer.WriteString("Name", "Info Name");
writer.WriteString("Details", "Info Details");
writer.WriteStartArray("Tags");

// Write some dummy values here
writer.WriteStringValue("value1");
writer.WriteStringValue("value2");

writer.WriteEndArray();
writer.WriteEndObject();
writer.WriteEndObject();
}

演示 fiddle here .

关于c# - 如何使用 Utf8JsonWriter 编写字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62047325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com