JsonValueOfJsonPrimitive
using System.Buffers;
namespace System.Text.Json.Nodes
{
internal static class JsonValueOfJsonPrimitive
{
internal static JsonValue CreatePrimitiveValue(ref Utf8JsonReader reader, JsonNodeOptions options)
{
switch (reader.TokenType) {
case JsonTokenType.True:
case JsonTokenType.False:
return new JsonValueOfJsonBool(reader.GetBoolean(), options);
case JsonTokenType.String: {
byte[] array = new byte[reader.ValueLength];
return new JsonValueOfJsonString(MemoryExtensions.AsMemory(array, 0, reader.CopyString(array)), options);
}
case JsonTokenType.Number: {
object number;
if (!reader.HasValueSequence)
number = reader.ValueSpan.ToArray();
else {
ReadOnlySequence<byte> sequence = reader.ValueSequence;
number = ref sequence.ToArray();
}
return new JsonValueOfJsonNumber((byte[])number, options);
}
default:
ThrowHelper.ThrowJsonException(null);
return null;
}
}
}
}