System.Text.Json Map from an ASCII char to its hex value, e.g. arr['b'] == 11. 0xFF means it's not a hex digit. Determines the naming policy used to convert a string-based name to another format, such as a camel-casing format. Initializes a new instance of . Returns the naming policy for camel-casing. When overridden in a derived class, converts the specified name according to the policy. The name to convert. The converted name. The base class of serialization attributes. When specified on , determines when properties and fields across the type graph are ignored. When specified on , controls whether a property or field is ignored during serialization and deserialization. This option overrides the setting on . Property is never ignored during serialization or deserialization. Property is always ignored during serialization and deserialization. If the value is the default, the property is ignored during serialization. This is applied to both reference and value-type properties and fields. If the value is , the property is ignored during serialization. This is applied only to reference-type properties and fields. The to be used at run time. Specifies that JSON property names should not be converted. Specifies that the built-in be used to convert JSON property names. Determines how handles numbers when serializing and deserializing. Numbers will only be read from tokens and will only be written as JSON numbers (without quotes). Numbers can be read from tokens. Does not prevent numbers from being read from token. Strings that have escaped characters will be unescaped before reading. Leading or trailing trivia within the string token, including whitespace, is not allowed. Numbers will be written as JSON strings (with quotes), not as JSON numbers. The "NaN", "Infinity", and "-Infinity" tokens can be read as floating-point constants, and the and values for these constants (such as and ) will be written as their corresponding JSON string representations. Strings that have escaped characters will be unescaped before reading. Leading or trailing trivia within the string token, including whitespace, is not allowed. Instructs the System.Text.Json source generator to generate source code to help optimize performance when serializing and deserializing instances of the specified type and types in its object graph. Initializes a new instance of with the specified type. The type to generate source code for. The name of the property for the generated for the type on the generated, derived type. Useful to resolve a name collision with another type in the compilation closure. Determines what the source generator should generate for the type. If the value is , then the setting specified on will be used. The generation mode for the System.Text.Json source generator. When specified on , indicates that both type-metadata initialization logic and optimized serialization logic should be generated for all types. When specified on , indicates that the setting on should be used. Instructs the JSON source generator to generate type-metadata initialization logic. This mode supports all features. Instructs the JSON source generator to generate optimized serialization logic. This mode supports only a subset of features. Instructs the System.Text.Json source generator to assume the specified options will be used at run time via . Specifies the default ignore condition. Specifies whether to ignore read-only fields. Specifies whether to ignore read-only properties. Specifies whether to include fields for serialization and deserialization. Specifies a built-in naming polices to convert JSON property names with. Specifies whether JSON output should be pretty-printed. Specifies the source generation mode for types that don't explicitly set the mode with . When placed on a constructor, indicates that the constructor should be used to create instances of the type on deserialization. Initializes a new instance of . When placed on a property, field, or type, specifies the converter type to use. The specified converter type must derive from . When placed on a property or field, the specified converter will always be used. When placed on a type, the specified converter will be used unless a compatible converter is added to or there is another on a property or field of the same type. Initializes a new instance of with the specified converter type. The type of the converter. Initializes a new instance of . The type of the converter to create, or null if should be used to obtain the converter. If overridden and is null, allows a custom attribute to create the converter in order to pass additional state. The custom converter. When placed on a property or field of type or , any properties that do not have a matching property or field are added during deserialization and written during serialization. When using , the TKey value must be and TValue must be or . During deserializing with a extension property with TValue as , the type of object created will either be a or a depending on the value of . If a is created, a "null" JSON value is treated as a JsonElement with set to , otherwise a "null" JSON value is treated as a null object reference. During serializing, the name of the extension data member is not included in the JSON; the data contained within the extension data is serialized as properties of the JSON object. If there is more than one extension member on a type, or the member is not of the correct type, an is thrown during the first serialization or deserialization of that type. Prevents a property or field from being serialized or deserialized. Specifies the condition that must be met before a property or field will be ignored. The default value is . Initializes a new instance of . Indicates that the property or field should be included for serialization and deserialization. When applied to a public property, indicates that non-public getters and setters should be used for serialization and deserialization. Non-public properties and fields are not allowed when serializing and deserializing. If the attribute is used on a non-public property or field, an is thrown during the first serialization or deserialization of the declaring type. Initializes a new instance of . When placed on a type, property, or field, indicates what settings should be used when serializing or deserializing numbers. Indicates what settings should be used when serializing or deserializing numbers. Initializes a new instance of . Specifies the property name that is present in the JSON when serializing and deserializing. This overrides any naming policy specified by . Initializes a new instance of with the specified property name. The name of the property. The name of the property. Specifies the property order that is present in the JSON when serializing. Lower values are serialized first. If the attribute is not specified, the default value is 0. If multiple properties have the same value, the ordering is undefined between them. Initializes a new instance of with the specified order. The order of the property. The serialization order of the property. Provides a mechanism to invoke "fast-path" serialization logic via . This type holds an optional reference to an actual for the type , to provide a fallback when the fast path cannot be used. The type to converter Implementation of JsonObjectConverter{T} that supports the deserialization of JSON objects using parameterized constructors. Converter for System.Array. Default base class implementation of JsonDictionaryConverter{TCollection} . Converter for Dictionary{string, TValue} that (de)serializes as a JSON object with properties representing the dictionary element key and value. Converter for System.Collections.Generic.ICollection{TElement}. Converter for System.Collections.IDictionary that (de)serializes as a JSON object with properties representing the dictionary element key and value. Converter for System.Collections.Generic.IDictionary{TKey, TValue} that (de)serializes as a JSON object with properties representing the dictionary element key and value. Converter for System.Collections.IEnumerable. Converter factory for all IEnumerable types. Default base class implementation of JsonIEnumerableConverter{TCollection, TElement}. Converter for System.Collections.Generic.IEnumerable{TElement}. Converter for System.Collections.IList. Converter for System.Collections.Generic.IList{TElement}. Converter for System.Collections.Generic.List{TElement}. Lazily initialized singleton for hardcoding by the IAsyncEnumerable streaming deserializer. Converter for JsonNode-derived types. The {T} value must be Object and not JsonNode since we allow Object-declared members\variables to deserialize as {JsonNode}. Lookup the constructor parameter given its name in the reader. Converter factory for all object-based types (non-enumerable and non-primitive). Default base class implementation of JsonObjectConverter{T}. Implementation of JsonObjectConverter{T} that supports the deserialization of JSON objects using parameterized constructors. Performs a full first pass of the JSON input and deserializes the ctor args. Lookup the constructor parameter given its name in the reader. Implementation of JsonObjectConverter{T} that supports the deserialization of JSON objects using parameterized constructors. Implementation of JsonObjectConverter{T} that supports the deserialization of JSON objects using parameterized constructors. Allow string values. Allow number values. Specifies that the JSON type should have its method called after deserialization occurs. This behavior is only supported on types representing JSON objects. Types that have a custom converter or represent either collections or primitive values do not support this behavior. The method that is called after deserialization. Specifies that the type should have its method called before deserialization occurs. This behavior is only supported on types representing JSON objects. Types that have a custom converter or represent either collections or primitive values do not support this behavior. The method that is called before deserialization. Specifies that the type should have its method called after serialization occurs. This behavior is only supported on types representing JSON objects. Types that have a custom converter or represent either collections or primitive values do not support this behavior. The method that is called after serialization. Specifies that the type should have its method called before serialization occurs. This behavior is only supported on types representing JSON objects. Types that have a custom converter or represent either collections or primitive values do not support this behavior. The method that is called before serialization. Provides metadata about a set of types that is relevant to JSON serialization. Gets the run time specified options of the context. If no options were passed when instanciating the context, then a new instance is bound and returned. The instance cannot be mutated once it is bound with the context instance. Indicates whether pre-generated serialization logic for types in the context is compatible with the run time specified . The default run time options for the context. Its values are defined at design-time via . Creates an instance of and binds it with the indicated . The run time provided options for the context instance. If no instance options are passed, then no options are set until the context is bound using , or until is called, where a new options instance is created and bound. Returns a instance representing the given type. The type to fetch metadata about. The metadata for the specified type, or if the context has no metadata for the type. A list of JsonConverters that respects the options class being immuttable once (de)serialization occurs. Converter for streaming values. Base class for all collections. Collections are assumed to implement or a variant thereof e.g. . Base class for dictionary converters such as IDictionary, Hashtable, Dictionary{,} IDictionary{,} and SortedList. Base class for dictionary converters such as IDictionary, Hashtable, Dictionary{,} IDictionary{,} and SortedList. When overridden, adds the value to the collection. When overridden, converts the temporary collection held in state.Current.ReturnValue to the final collection. This is used with immutable collections. When overridden, create the collection. It may be a temporary collection or the final collection. Base class for non-enumerable, non-primitive objects where public properties are (de)serialized as a JSON object. Converts an object or value to or from JSON. Converts an object or value to or from JSON. Determines whether the type can be converted. The type is checked as to whether it can be converted. True if the type can be converted, false otherwise. Can direct Read or Write methods be called (for performance). Can the converter have $id metadata. Used to support JsonObject as an extension property in a loosely-typed, trimmable manner. Used to support JsonObject as an extension property in a loosely-typed, trimmable manner. Cached value of TypeToConvert.IsValueType, which is an expensive call. Whether the converter is built-in. Whether the converter is built-in and handles a number type. Loosely-typed ReadCore() that forwards to strongly-typed ReadCore(). Loosely-typed WriteCore() that forwards to strongly-typed WriteCore(). Loosely-typed WriteToPropertyName() that forwards to strongly-typed WriteToPropertyName(). Creates the instance and assigns it to state.Current.ReturnValue. Perform a Read() and if read-ahead is required, also read-ahead (to the end of the current JSON level). Supports converting several types by using a factory pattern. This is useful for converters supporting generics, such as a converter for . When overidden, constructs a new instance. Create a converter for the provided . The being converted. The being used. An instance of a where T is compatible with . If is returned, a will be thrown. Converts an object or value to or from JSON. The to convert. When overidden, constructs a new instance. Determines whether the type can be converted. The default implementation is to return True when equals typeof(T). True if the type can be converted, False otherwise. Indicates whether should be passed to the converter on serialization, and whether should be passed on deserialization. The default value is for converters based on value types, and for converters based on reference types. Does the converter want to be called when reading null tokens. Does the converter want to be called for null values. Can be assigned to ? Read and convert the JSON to T. A converter may throw any Exception, but should throw JsonException when the JSON is invalid. The to read from. The being converted. The being used. The value that was converted. Note that the value of determines if the converter handles null JSON tokens. Performance optimization. The 'in' modifier in 'TryWrite(in T Value)' causes boxing for Nullable{T}, so this helper avoids that. TODO: Remove this work-around once #50915 is addressed. Write the value as JSON. A converter may throw any Exception, but should throw JsonException when the JSON cannot be created. The to write to. The value to convert. Note that the value of determines if the converter handles values. The being used. Reads a dictionary key from a JSON property name. The to read from. The being converted. The being used. The value that was converted. Method should be overridden in custom converters of types used in deserialized dictionary keys. Writes a dictionary key as a JSON property name. The to write to. The value to convert. Note that the value of determines if the converter handles values. The being used. Method should be overridden in custom converters of types used in serialized dictionary keys. Base class for converters that are able to resume after reading or writing to a buffer. This is used when the Stream-based serialization APIs are used. Converter to convert enums to and from strings. Reading is case insensitive, writing can be customized via a . Constructor. Creates the with the default naming policy and allows integer values. Constructor. Optional naming policy for writing enum values. True to allow undefined enum values. When true, if an enum value isn't defined it will output as a number rather than a string. Defines how deserializing a type declared as an is handled during deserialization. A type declared as is deserialized as a . A type declared as is deserialized as a . Proxy class used to access FSharp.Core metadata and reflection APIs that are not statically available to System.Text.Json. The various categories of F# types that System.Text.Json supports. Checks if the provided System.Type instance is emitted by the F# compiler. If true, also initializes the proxy singleton for future by other F# types. Gets the singleton proxy instance; prerequires a successful IsFSharpType call for proxy initialization. Allows virtual dispatch to GenericMethodHolder{T}. Returns the default value for the specified type. Returns true if contains only default values. Creates a holder instance representing a type. Generic methods for {T}. Provides serialization metadata about a collection type. The collection type. A to create an instance of the collection when deserializing. If a dictionary type, the instance representing the key type. A instance representing the element type. The option to apply to number collection elements. An optimized serialization implementation assuming pre-determined defaults. Provides helpers to create and initialize metadata for JSON-serializable types. Creates serialization metadata for an array. The generic definition of the element type. The to use. Provides serialization metadata about the collection type. Serialization metadata for the given type. Creates serialization metadata for types assignable to . The generic definition of the type. The generic definition of the element type. The to use. Provides serialization metadata about the collection type. Serialization metadata for the given type. Creates serialization metadata for types assignable to . The generic definition of the type. The generic definition of the key type. The generic definition of the value type. Provides serialization metadata about the collection type. Serialization metadata for the given type. Creates serialization metadata for and types assignable to . The generic definition of the type. The generic definition of the key type. The generic definition of the value type. Provides serialization metadata about the collection type. A method to create an immutable dictionary instance. Serialization metadata for the given type. Creates serialization metadata for types assignable to . The generic definition of the type. The generic definition of the key type. The generic definition of the value type. Provides serialization metadata about the collection type. Serialization metadata for the given type. Creates serialization metadata for types assignable to . The generic definition of the type. The generic definition of the key type. The generic definition of the value type. Provides serialization metadata about the collection type. Serialization metadata for the given type. Creates serialization metadata for non-dictionary immutable collection types. The generic definition of the type. The generic definition of the element type. Provides serialization metadata about the collection type. A method to create an immutable dictionary instance. Serialization metadata for the given type. Creates serialization metadata for types assignable to . The generic definition of the type. Provides serialization metadata about the collection type. Serialization metadata for the given type. Creates serialization metadata for types assignable to . The generic definition of the type. The generic definition of the element type. Provides serialization metadata about the collection type. Serialization metadata for the given type. Creates serialization metadata for types assignable to . The generic definition of the type. The generic definition of the element type. Provides serialization metadata about the collection type. Serialization metadata for the given type. Creates serialization metadata for types assignable to . The generic definition of the type. The generic definition of the element type. Provides serialization metadata about the collection type. Serialization metadata for the given type. Creates serialization metadata for types assignable to . The generic definition of the type. The generic definition of the element type. Provides serialization metadata about the collection type. Serialization metadata for the given type. Creates serialization metadata for types assignable to . The generic definition of the type. The generic definition of the element type. Provides serialization metadata about the collection type. Serialization metadata for the given type. Creates serialization metadata for types assignable to . The generic definition of the type. The generic definition of the element type. Provides serialization metadata about the collection type. Serialization metadata for the given type. Creates serialization metadata for types assignable to . The generic definition of the type. The generic definition of the element type. Provides serialization metadata about the collection type. Serialization metadata for the given type. Creates serialization metadata for types assignable to . The generic definition of the type. The generic definition of the element type. Provides serialization metadata about the collection type. Serialization metadata for the given type. Creates serialization metadata for types assignable to . The generic definition of the type. Provides serialization metadata about the collection type. Serialization metadata for the given type. Creates serialization metadata for types. The generic definition of the type. Provides serialization metadata about the collection type. A method for adding elements to the collection when using the serializer's code-paths. Serialization metadata for the given type. Creates serialization metadata for types. The generic definition of the type. Provides serialization metadata about the collection type. A method for adding elements to the collection when using the serializer's code-paths. Serialization metadata for the given type. Creates serialization metadata for types assignable to . The generic definition of the type. Provides serialization metadata about the collection type. Serialization metadata for the given type. Returns a instance that converts values. Returns a instance that converts byte array values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Returns a instance that converts values. Creates a instance that throws . The generic definition for the type. A instance that throws Creates a instance that converts values. The generic definition for the enum type. The to use for serialization and deserialization. A instance that converts values. Creates a instance that converts values. The generic definition for the underlying nullable type. Serialization metadata for the underlying nullable type. A instance that converts values Creates metadata for a property or field. The type that the converter for the property returns or accepts when converting JSON data. The to initialize the metadata with. Provides serialization metadata about the property or field. A instance intialized with the provided metadata. Creates metadata for a complex class or struct. The to initialize the metadata with. Provides serialization metadata about an object type with constructors, properties, and fields. The type of the class or struct. Thrown when or is null. A instance representing the class or struct. Creates metadata for a primitive or a type with a custom converter. The generic type definition. A instance representing the type. Provides serialization metadata about an object type with constructors, properties, and fields. The object type to serialize or deserialize. Provides a mechanism to create an instance of the class or struct when deserializing, using a parameterless constructor. Provides a mechanism to create an instance of the class or struct when deserializing, using a parameterized constructor. Provides a mechanism to initialize metadata for properties and fields of the class or struct. Provides a mechanism to initialize metadata for a parameterized constructor of the class or struct to be used when deserializing. Specifies how number properties and fields should be processed when serializing and deserializing. Provides a serialization implementation for instances of the class or struct which assumes options specified by . Provides information about a constructor parameter required for JSON deserialization. The name of the parameter. The type of the parameter. The zero-based position of the parameter in the formal parameter list. Whether a default value was specified for the parameter. The default value of the parameter. Holds relevant state about a method parameter, like the default value of the parameter, and the position in the method's parameter list. Create a parameter that is ignored at run time. It uses the same type (typeof(sbyte)) to help prevent issues with unsupported types and helps ensure we don't accidently (de)serialize it. Represents a strongly-typed parameter to prevent boxing where have less than 4 parameters. Holds relevant state like the default value of the parameter, and the position in the method's parameter list. Provides JSON serialization-related metadata about a property or field. True if the corresponding cref="JsonTypeInfo.PropertyInfoForTypeInfo"/> is this instance. The unescaped name of the property. Is either the actual CLR property name, the value specified in JsonPropertyNameAttribute, or the value returned from PropertyNamingPolicy(clrPropertyName). Utf8 version of NameAsString. The escaped name passed to the writer. The property order. Relevant to source generated metadata: did the property have the ? Relevant to source generated metadata: did the property have the ? Relevant to source generated metadata: is the property public? Default value used for parameterized ctor invocation. Represents a strongly-typed property to prevent boxing and to create a direct delegate to the getter\setter. is the for either the property's converter, or a type's converter, if the current instance is a . Returns true if the property's converter is external (a user's custom converter) and the type to convert is not the same as the declared property type (polymorphic). Used to determine whether to perform additional validation on the value returned by the converter on deserialization. Create a for a given Type. See . Provides serialization metadata about a property or field. The type to convert of the for the property. If , indicates that the member is a property, otherwise indicates the member is a field. Whether the property or field is public. Whether the property or field is a virtual property. The declaring type of the property or field. The info for the property or field's type. A for the property or field, specified by . Provides a mechanism to get the property or field's value. Provides a mechanism to set the property or field's value. Specifies a condition for the member to be ignored. Whether the property was annotated with . Whether the property was annotated with . If the property or field is a number, specifies how it should processed when serializing and deserializing. The name of the property or field. The name to be used when processing the property or field, specified by . Creates and initializes serialization metadata for a type. Creates serialization metadata for a type using a simple converter. Creates serialization metadata for an object. Creates serialization metadata for a collection. Provides JSON serialization-related metadata about a type. The generic definition of the type. Serializes an instance of using values specified at design time. The writer is not flushed after writing. Provides JSON serialization-related metadata about a type. Cached typeof(object). It is faster to cache this than to call typeof(object) multiple times. Create a for a given Type. See . Get a key from the property name. The key consists of the first 7 bytes of the property name and then the length. Return the JsonTypeInfo for the element type, or null if the type is not an enumerable or dictionary. This should not be called during warm-up (initial creation of JsonTypeInfos) to avoid recursive behavior which could result in a StackOverflowException. Return the JsonTypeInfo for the key type, or null if the type is not a dictionary. This should not be called during warm-up (initial creation of JsonTypeInfos) to avoid recursive behavior which could result in a StackOverflowException. The JsonPropertyInfo for this JsonTypeInfo. It is used to obtain the converter for the TypeInfo. The returned JsonPropertyInfo does not represent a real property; instead it represents either: a collection element type, a generic type parameter, a property type (if pushed to a new stack frame), or the root type passed into the root serialization APIs. For example, for a property returning where T is a string, a JsonTypeInfo will be created with .Type=typeof(string) and .PropertyInfoForTypeInfo=JsonPropertyInfo{string}. Without this property, a "Converter" property would need to be added to JsonTypeInfo and there would be several more `if` statements to obtain the converter from either the actual JsonPropertyInfo (for a real property) or from the TypeInfo (for the cases mentioned above). In addition, methods that have a JsonPropertyInfo argument would also likely need to add an argument for JsonTypeInfo. Returns a helper class used when generic methods need to be invoked on Type. The default ReferenceResolver implementation to handle duplicate object references. This class defines how the deals with references on serialization and deserialization. Indicates whether this ReferenceHandler implementation should use semantics or semantics. The defualt is Preserve. Metadata properties will be honored when deserializing JSON objects and arrays into reference types and written when serializing reference types. This is necessary to create round-trippable JSON from objects that contain cycles or duplicate references. * On Serialize: When writing complex reference types, the serializer also writes metadata properties (`$id`, `$values`, and `$ref`) within them. The output JSON will contain an extra `$id` property for every object, and for every enumerable type the JSON array emitted will be nested within a JSON object containing an `$id` and `$values` property. is used to determine whether objects are identical. When an object is identical to a previously serialized one, a pointer (`$ref`) to the identifier (`$id`) of such object is written instead. No metadata properties are written for value types. * On Deserialize: The metadata properties within the JSON that are used to preserve duplicated references and cycles will be honored as long as they are well-formed**. For JSON objects that don't contain any metadata properties, the deserialization behavior is identical to . For value types: * The `$id` metadata property is ignored. * A is thrown if a `$ref` metadata property is found within the JSON object. * For enumerable value types, the `$values` metadata property is ignored. ** For the metadata properties within the JSON to be considered well-formed, they must follow these rules: 1) The `$id` metadata property must be the first property in the JSON object. 2) A JSON object that contains a `$ref` metadata property must not contain any other properties. 3) The value of the `$ref` metadata property must refer to an `$id` that has appeared earlier in the JSON. 4) The value of the `$id` and `$ref` metadata properties must be a JSON string. 5) For enumerable types, such as , the JSON array must be nested within a JSON object containing an `$id` and `$values` metadata property, in that order. 6) For enumerable types, the `$values` metadata property must be a JSON array. 7) The `$values` metadata property is only valid when referring to enumerable types. If the JSON is not well-formed, a is thrown. Ignores an object when a reference cycle is detected during serialization. Returns the used for each serialization call. The resolver to use for serialization and deserialization. Optimization for the resolver used when is set in ; we pass a flag signaling whether this is called from serialization or deserialization to save one dictionary instantiation. This class defines how the deals with references on serialization and deserialization. The type of the to create on each serialization or deserialization call. Creates a new of type used for each serialization call. The new resolver to use for serialization and deserialization. This class defines how the deals with references on serialization and deserialization. Defines the core behavior of preserving references on serialization and deserialization. Adds an entry to the bag of references using the specified id and value. This method gets called when an $id metadata property from a JSON object is read. The identifier of the respective JSON object or array. The value of the respective CLR reference type object that results from parsing the JSON object. Gets the reference identifier of the specified value if exists; otherwise a new id is assigned. This method gets called before a CLR object is written so we can decide whether to write $id and enumerate the rest of its properties or $ref and step into the next object. The value of the CLR reference type object to get an id for. When this method returns, if a reference to value already exists; otherwise, . The reference id for the specified object. Returns the CLR reference type object related to the specified reference id. This method gets called when $ref metadata property is read. The reference id related to the returned object. The reference type object related to specified reference id. Emulates Dictionary.TryAdd on netstandard. Returns the span for the given reader. Returns if is a valid Unicode scalar value, i.e., is in [ U+0000..U+D7FF ], inclusive; or [ U+E000..U+10FFFF ], inclusive. Returns if is between and , inclusive. Returns if is between and , inclusive. Returns if is between and , inclusive. Returns if is between and , inclusive. Returns if is in the range [0..9]. Otherwise, returns . Perform a Read() with a Debug.Assert verifying the reader did not return false. This should be called when the Read() return value is not used, such as non-Stream cases where there is only one buffer. Calls Encoding.UTF8.GetString that supports netstandard. The utf8 bytes to convert. Emulates Dictionary(IEnumerable{KeyValuePair}) on netstandard. Parse the given UTF-8 as extended ISO 8601 format. UTF-8 source to parse. The parsed if successful. "true" if successfully parsed. Parse the given UTF-8 as extended ISO 8601 format. UTF-8 source to parse. The parsed if successful. "true" if successfully parsed. ISO 8601 date time parser (ISO 8601-1:2019). The date/time to parse in UTF-8 format. The parsed for the given . Supports extended calendar date (5.2.2.1) and complete (5.4.2.1) calendar date/time of day representations with optional specification of seconds and fractional seconds. Times can be explicitly specified as UTC ("Z" - 5.3.3) or offsets from UTC ("+/-hh:mm" 5.3.4.2). If unspecified they are considered to be local per spec. Examples: (TZD is either "Z" or hh:mm offset from UTC) YYYY-MM-DD (eg 1997-07-16) YYYY-MM-DDThh:mm (eg 1997-07-16T19:20) YYYY-MM-DDThh:mm:ss (eg 1997-07-16T19:20:30) YYYY-MM-DDThh:mm:ss.s (eg 1997-07-16T19:20:30.45) YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00) YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:3001:00) YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45Z) Generally speaking we always require the "extended" option when one exists (3.1.3.5). The extended variants have separator characters between components ('-', ':', '.', etc.). Spaces are not permitted. "true" if successfully parsed. Overflow-safe DateTimeOffset factory. Overflow-safe DateTimeOffset factory. Overflow-safe DateTimeOffset/Local time conversion factory. Overflow-safe DateTime factory. Returns when the given type is of type . Returns when the given type is either a reference type or of type . This calls which is slow. If knowledge already exists that the type is a value type, call instead. Returns when the given type is assignable from including support when is by using the {T} generic parameter for . Represents the structure of a JSON value in a lightweight, read-only form. This class utilizes resources from pooled memory to minimize the garbage collector (GC) impact in high-usage scenarios. Failure to properly Dispose this object will result in the memory not being returned to the pool, which will cause an increase in GC impact across various parts of the framework. The representing the value of the document. Write the document into the provided writer as a JSON value. The parameter is . This 's would result in an invalid JSON. The parent has been disposed. Index into the payload length of text in JSON payload (or number of elements if its a JSON array) String/PropertyName: Unescaping is required. Array: At least one element is an object/array. Otherwise; false If using array pools, trim excess if necessary. If not using array pools, release the temporary array pool and alloc. Parse memory as UTF-8-encoded text representing a single JSON value into a JsonDocument. The value will be used for the entire lifetime of the JsonDocument object, and the caller must ensure that the data therein does not change during the object lifetime. Because the input is considered to be text, a UTF-8 Byte-Order-Mark (BOM) must not be present. JSON text to parse. Options to control the reader behavior during parsing. A JsonDocument representation of the JSON value. does not represent a valid single JSON value. contains unsupported options. Parse a sequence as UTF-8-encoded text representing a single JSON value into a JsonDocument. The may be used for the entire lifetime of the JsonDocument object, and the caller must ensure that the data therein does not change during the object lifetime. Because the input is considered to be text, a UTF-8 Byte-Order-Mark (BOM) must not be present. JSON text to parse. Options to control the reader behavior during parsing. A JsonDocument representation of the JSON value. does not represent a valid single JSON value. contains unsupported options. Parse a as UTF-8-encoded data representing a single JSON value into a JsonDocument. The Stream will be read to completion. JSON data to parse. Options to control the reader behavior during parsing. A JsonDocument representation of the JSON value. does not represent a valid single JSON value. contains unsupported options. Parse a as UTF-8-encoded data representing a single JSON value into a JsonDocument. The Stream will be read to completion. JSON data to parse. Options to control the reader behavior during parsing. The token to monitor for cancellation requests. A Task to produce a JsonDocument representation of the JSON value. does not represent a valid single JSON value. contains unsupported options. Parses text representing a single JSON value into a JsonDocument. The value may be used for the entire lifetime of the JsonDocument object, and the caller must ensure that the data therein does not change during the object lifetime. JSON text to parse. Options to control the reader behavior during parsing. A JsonDocument representation of the JSON value. does not represent a valid single JSON value. contains unsupported options. Parses text representing a single JSON value into a JsonDocument. JSON text to parse. Options to control the reader behavior during parsing. A JsonDocument representation of the JSON value. does not represent a valid single JSON value. contains unsupported options. Attempts to parse one JSON value (including objects or arrays) from the provided reader. The reader to read. Receives the parsed document. if a value was read and parsed into a JsonDocument, if the reader ran out of data while parsing. All other situations result in an exception being thrown. If the property of is or , the reader will be advanced by one call to to determine the start of the value. Upon completion of this method, will be positioned at the final token in the JSON value. If an exception is thrown, or is returned, the reader is reset to the state it was in when the method was called. This method makes a copy of the data the reader acted on, so there is no caller requirement to maintain data integrity beyond the return of this method. is using unsupported options. The current token does not start or represent a value. A value could not be read from the reader. Parses one JSON value (including objects or arrays) from the provided reader. The reader to read. A JsonDocument representing the value (and nested values) read from the reader. If the property of is or , the reader will be advanced by one call to to determine the start of the value. Upon completion of this method, will be positioned at the final token in the JSON value. If an exception is thrown, the reader is reset to the state it was in when the method was called. This method makes a copy of the data the reader acted on, so there is no caller requirement to maintain data integrity beyond the return of this method. is using unsupported options. The current token does not start or represent a value. A value could not be read from the reader. Provides the ability for the user to define custom behavior when parsing JSON to create a . Defines how the should handle comments when reading through the JSON. Thrown when the comment handling enum is set to a value that is not supported (or not within the enum range). By default is thrown if a comment is encountered. Gets or sets the maximum depth allowed when reading JSON, with the default (i.e. 0) indicating a max depth of 64. Thrown when the max depth is set to a negative value. Reading past this depth will throw a . Defines whether an extra comma at the end of a list of JSON values in an object or array is allowed (and ignored) within the JSON payload being read. By default, it's set to false, and is thrown if a trailing comma is encountered. Represents a specific JSON value within a . An enumerable and enumerator for the contents of a JSON array. Returns an enumerator that iterates through a collection. An value that can be used to iterate through the array. The that the value is. The parent has been disposed. Get the value at a specified index when the current value is a . This value's is not . is not in the range [0, ()). The parent has been disposed. Get the number of values contained within the current array value. The number of values contained within the current array value. This value's is not . The parent has been disposed. Gets a representing the value of a required property identified by . Property name matching is performed as an ordinal, case-sensitive, comparison. If a property is defined multiple times for the same object, the last such definition is what is matched. Name of the property whose value to return. A representing the value of the requested property. This value's is not . No property was found with the requested name. is . The parent has been disposed. Gets a representing the value of a required property identified by . Property name matching is performed as an ordinal, case-sensitive, comparison. If a property is defined multiple times for the same object, the last such definition is what is matched. Name of the property whose value to return. A representing the value of the requested property. This value's is not . No property was found with the requested name. The parent has been disposed. Gets a representing the value of a required property identified by . Property name matching is performed as an ordinal, case-sensitive, comparison. If a property is defined multiple times for the same object, the last such definition is what is matched. The UTF-8 (with no Byte-Order-Mark (BOM)) representation of the name of the property to return. A representing the value of the requested property. This value's is not . No property was found with the requested name. The parent has been disposed. Looks for a property named in the current object, returning whether or not such a property existed. When the property exists is assigned to the value of that property. Property name matching is performed as an ordinal, case-sensitive, comparison. If a property is defined multiple times for the same object, the last such definition is what is matched. Name of the property to find. Receives the value of the located property. if the property was found, otherwise. This value's is not . is . The parent has been disposed. Looks for a property named in the current object, returning whether or not such a property existed. When the property exists is assigned to the value of that property. Property name matching is performed as an ordinal, case-sensitive, comparison. If a property is defined multiple times for the same object, the last such definition is what is matched. Name of the property to find. Receives the value of the located property. if the property was found, otherwise. This value's is not . The parent has been disposed. Looks for a property named in the current object, returning whether or not such a property existed. When the property exists is assigned to the value of that property. Property name matching is performed as an ordinal, case-sensitive, comparison. If a property is defined multiple times for the same object, the last such definition is what is matched. The UTF-8 (with no Byte-Order-Mark (BOM)) representation of the name of the property to return. Receives the value of the located property. if the property was found, otherwise. This value's is not . The parent has been disposed. Gets the value of the element as a . This method does not parse the contents of a JSON string value. The value of the element as a . This value's is neither or . The parent has been disposed. Gets the value of the element as a . This method does not create a string representation of values other than JSON strings. The value of the element as a . This value's is neither nor . The parent has been disposed. Attempts to represent the current JSON string as bytes assuming it is Base64 encoded. Receives the value. This method does not create a byte[] representation of values other than base 64 encoded JSON strings. if the entire token value is encoded as valid Base64 text and can be successfully decoded to bytes. otherwise. This value's is not . The parent has been disposed. Gets the value of the element as bytes. This method does not create a byte[] representation of values other than Base64 encoded JSON strings. The value decode to bytes. This value's is not . The value is not encoded as Base64 text and hence cannot be decoded to bytes. The parent has been disposed. Attempts to represent the current JSON number as an . Receives the value. This method does not parse the contents of a JSON string value. if the number can be represented as an , otherwise. This value's is not . The parent has been disposed. Gets the current JSON number as an . The current JSON number as an . This value's is not . The value cannot be represented as an . The parent has been disposed. Attempts to represent the current JSON number as a . Receives the value. This method does not parse the contents of a JSON string value. if the number can be represented as a , otherwise. This value's is not . The parent has been disposed. Gets the current JSON number as a . The current JSON number as a . This method does not parse the contents of a JSON string value. This value's is not . The value cannot be represented as a . The parent has been disposed. Attempts to represent the current JSON number as an . Receives the value. This method does not parse the contents of a JSON string value. if the number can be represented as an , otherwise. This value's is not . The parent has been disposed. Gets the current JSON number as an . The current JSON number as an . This value's is not . The value cannot be represented as an . The parent has been disposed. Attempts to represent the current JSON number as a . Receives the value. This method does not parse the contents of a JSON string value. if the number can be represented as a , otherwise. This value's is not . The parent has been disposed. Gets the current JSON number as a . The current JSON number as a . This method does not parse the contents of a JSON string value. This value's is not . The value cannot be represented as a . The parent has been disposed. Attempts to represent the current JSON number as an . Receives the value. This method does not parse the contents of a JSON string value. if the number can be represented as an , otherwise. This value's is not . The parent has been disposed. Gets the current JSON number as an . The current JSON number as an . This value's is not . The value cannot be represented as an . The parent has been disposed. Attempts to represent the current JSON number as a . Receives the value. This method does not parse the contents of a JSON string value. if the number can be represented as a , otherwise. This value's is not . The parent has been disposed. Gets the current JSON number as a . The current JSON number as a . This method does not parse the contents of a JSON string value. This value's is not . The value cannot be represented as a . The parent has been disposed. Attempts to represent the current JSON number as a . Receives the value. This method does not parse the contents of a JSON string value. if the number can be represented as a , otherwise. This value's is not . The parent has been disposed. Gets the current JSON number as a . The current JSON number as a . This method does not parse the contents of a JSON string value. This value's is not . The value cannot be represented as a . The parent has been disposed. Attempts to represent the current JSON number as a . Receives the value. This method does not parse the contents of a JSON string value. if the number can be represented as a , otherwise. This value's is not . The parent has been disposed. Gets the current JSON number as a . The current JSON number as a . This method does not parse the contents of a JSON string value. This value's is not . The value cannot be represented as a . The parent has been disposed. Attempts to represent the current JSON number as a . Receives the value. This method does not parse the contents of a JSON string value. On .NET Core this method does not return for values larger than (or smaller than ), instead is returned and (or ) is emitted. if the number can be represented as a , otherwise. This value's is not . The parent has been disposed. Gets the current JSON number as a . The current JSON number as a . This method does not parse the contents of a JSON string value. On .NET Core this method returns (or ) for values larger than (or smaller than ). This value's is not . The value cannot be represented as a . The parent has been disposed. Attempts to represent the current JSON number as a . Receives the value. This method does not parse the contents of a JSON string value. On .NET Core this method does not return for values larger than (or smaller than ), instead is returned and (or ) is emitted. if the number can be represented as a , otherwise. This value's is not . The parent has been disposed. Gets the current JSON number as a . The current JSON number as a . This method does not parse the contents of a JSON string value. On .NET Core this method returns (or ) for values larger than (or smaller than ). This value's is not . The value cannot be represented as a . The parent has been disposed. Attempts to represent the current JSON number as a . Receives the value. This method does not parse the contents of a JSON string value. if the number can be represented as a , otherwise. This value's is not . The parent has been disposed. Gets the current JSON number as a . The current JSON number as a . This method does not parse the contents of a JSON string value. This value's is not . The value cannot be represented as a . The parent has been disposed. Attempts to represent the current JSON string as a . Receives the value. This method does not create a DateTime representation of values other than JSON strings. if the string can be represented as a , otherwise. This value's is not . The parent has been disposed. Gets the value of the element as a . This method does not create a DateTime representation of values other than JSON strings. The value of the element as a . This value's is not . The value cannot be represented as a . The parent has been disposed. Attempts to represent the current JSON string as a . Receives the value. This method does not create a DateTimeOffset representation of values other than JSON strings. if the string can be represented as a , otherwise. This value's is not . The parent has been disposed. Gets the value of the element as a . This method does not create a DateTimeOffset representation of values other than JSON strings. The value of the element as a . This value's is not . The value cannot be represented as a . The parent has been disposed. Attempts to represent the current JSON string as a . Receives the value. This method does not create a Guid representation of values other than JSON strings. if the string can be represented as a , otherwise. This value's is not . The parent has been disposed. Gets the value of the element as a . This method does not create a Guid representation of values other than JSON strings. The value of the element as a . This value's is not . The value cannot be represented as a . The parent has been disposed. Gets the original input data backing this value, returning it as a . The original input data backing this value, returning it as a . The parent has been disposed. Compares to the string value of this element. The text to compare against. if the string value of this element matches , otherwise. This value's is not . This method is functionally equal to doing an ordinal comparison of and the result of calling , but avoids creating the string instance. Compares the text represented by to the string value of this element. The UTF-8 encoded text to compare against. if the string value of this element has the same UTF-8 encoding as , otherwise. This value's is not . This method is functionally equal to doing an ordinal comparison of the string produced by UTF-8 decoding with the result of calling , but avoids creating the string instances. Compares to the string value of this element. The text to compare against. if the string value of this element matches , otherwise. This value's is not . This method is functionally equal to doing an ordinal comparison of and the result of calling , but avoids creating the string instance. Write the element into the provided writer as a JSON value. The writer. The parameter is . This value's is . The parent has been disposed. Get an enumerator to enumerate the values in the JSON array represented by this JsonElement. An enumerator to enumerate the values in the JSON array represented by this JsonElement. This value's is not . The parent has been disposed. Get an enumerator to enumerate the properties in the JSON object represented by this JsonElement. An enumerator to enumerate the properties in the JSON object represented by this JsonElement. This value's is not . The parent has been disposed. Gets a string representation for the current value appropriate to the value type. For JsonElement built from : For , is returned. For , is returned. For , is returned. For , the value of () is returned. For other types, the value of () is returned. A string representation for the current value appropriate to the value type. The parent has been disposed. Get a JsonElement which can be safely stored beyond the lifetime of the original . A JsonElement which can be safely stored beyond the lifetime of the original . If this JsonElement is itself the output of a previous call to Clone, or a value contained within another JsonElement which was the output of a previous call to Clone, this method results in no additional memory allocation. An enumerable and enumerator for the properties of a JSON object. Returns an enumerator that iterates the properties of an object. An value that can be used to iterate through the object. The enumerator will enumerate the properties in the order they are declared, and when an object has multiple definitions of a single property they will all individually be returned (each in the order they appear in the content). Parses one JSON value (including objects or arrays) from the provided reader. The reader to read. A JsonElement representing the value (and nested values) read from the reader. If the property of is or , the reader will be advanced by one call to to determine the start of the value. Upon completion of this method, will be positioned at the final token in the JSON value. If an exception is thrown, the reader is reset to the state it was in when the method was called. This method makes a copy of the data the reader acted on, so there is no caller requirement to maintain data integrity beyond the return of this method. is using unsupported options. The current token does not start or represent a value. A value could not be read from the reader. Attempts to parse one JSON value (including objects or arrays) from the provided reader. The reader to read. Receives the parsed element. if a value was read and parsed into a JsonElement; if the reader ran out of data while parsing. All other situations result in an exception being thrown. If the property of is or , the reader will be advanced by one call to to determine the start of the value. Upon completion of this method, will be positioned at the final token in the JSON value. If an exception is thrown, or is returned, the reader is reset to the state it was in when the method was called. This method makes a copy of the data the reader acted on, so there is no caller requirement to maintain data integrity beyond the return of this method. is using unsupported options. The current token does not start or represent a value. A value could not be read from the reader. Represents a single property for a JSON object. The value of this property. The name of this property. Compares to the name of this property. The text to compare against. if the name of this property matches , otherwise. This value's is not . This method is functionally equal to doing an ordinal comparison of and , but can avoid creating the string instance. Compares the text represented by to the name of this property. The UTF-8 encoded text to compare against. if the name of this property has the same UTF-8 encoding as , otherwise. This value's is not . This method is functionally equal to doing an ordinal comparison of and , but can avoid creating the string instance. Compares to the name of this property. The text to compare against. if the name of this property matches , otherwise. This value's is not . This method is functionally equal to doing an ordinal comparison of and , but can avoid creating the string instance. Write the property into the provided writer as a named JSON object property. The writer. The parameter is . This 's length is too large to be a JSON object property. This 's would result in an invalid JSON. The parent has been disposed. > Provides a representation of the property for debugging purposes. A string containing the un-interpreted value of the property, beginning at the declaring open-quote and ending at the last character that is part of the value. Specifies the data type of a JSON value. Indicates that there is no value (as distinct from ). Indicates that a value is a JSON object. Indicates that a value is a JSON array. Indicates that a value is a JSON string. Indicates that a value is a JSON number. Indicates that a value is the JSON value true. Indicates that a value is the JSON value false. Indicates that a value is the JSON value null. This enum defines the various ways the can deal with comments. By default, do no allow comments within the JSON input. Comments are treated as invalid JSON if found and a is thrown. Allow comments within the JSON input and ignore them. The will behave as if no comments were present. Allow comments within the JSON input and treat them as valid tokens. While reading, the caller will be able to access the comment values. Provides a way to transform UTF-8 or UTF-16 encoded text into a form that is suitable for JSON. This can be used to cache and store known strings used for writing JSON ahead of time by pre-encoding them up front. Returns the UTF-8 encoded representation of the pre-encoded JSON text. Encodes the string text value as a JSON string. The value to be transformed as JSON encoded text. The encoder to use when escaping the string, or to use the default encoder. Thrown if value is null. Thrown when the specified value is too large or if it contains invalid UTF-16 characters. Encodes the text value as a JSON string. The value to be transformed as JSON encoded text. The encoder to use when escaping the string, or to use the default encoder. Thrown when the specified value is too large or if it contains invalid UTF-16 characters. Encodes the UTF-8 text value as a JSON string. The UTF-8 encoded value to be transformed as JSON encoded text. The encoder to use when escaping the string, or to use the default encoder. Thrown when the specified value is too large or if it contains invalid UTF-8 bytes. Determines whether this instance and another specified instance have the same value. Default instances of are treated as equal. Determines whether this instance and a specified object, which must also be a instance, have the same value. If is null, the method returns false. Converts the value of this instance to a . Returns an empty string on a default instance of . Returns the underlying UTF-16 encoded string. Returns the hash code for this . Returns 0 on a default instance of . Defines a custom exception object that is thrown when invalid JSON text is encountered, when the defined maximum depth is passed, or the JSON text is not compatible with the type of a property on an object. Creates a new exception object to relay error information to the user. The context specific error message. The line number at which the invalid JSON was encountered (starting at 0) when deserializing. The byte count within the current line where the invalid JSON was encountered (starting at 0). The path where the invalid JSON was encountered. The exception that caused the current exception. Note that the counts the number of bytes (i.e. UTF-8 code units) and not characters or scalars. Creates a new exception object to relay error information to the user. The context specific error message. The path where the invalid JSON was encountered. The line number at which the invalid JSON was encountered (starting at 0) when deserializing. The byte count within the current line where the invalid JSON was encountered (starting at 0). Note that the counts the number of bytes (i.e. UTF-8 code units) and not characters or scalars. Creates a new exception object to relay error information to the user. The context specific error message. The exception that caused the current exception. Creates a new exception object to relay error information to the user. The context specific error message. Creates a new exception object to relay error information to the user. Creates a new exception object with serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Thrown when is . Specifies that 'try' logic should append Path information to the exception message. Sets the with information about the exception. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The number of lines read so far before the exception (starting at 0). The number of bytes read within the current line before the exception (starting at 0). The path within the JSON where the exception was encountered. Gets a message that describes the current exception. Keeps both a List and Dictionary in sync to enable determinstic enumeration ordering of List and performance benefits of Dictionary once a threshold is hit. This enum defines the various JSON tokens that make up a JSON text and is used by the when moving from one token to the next. The starts at 'None' by default. The 'Comment' enum value is only ever reached in a specific mode and is not reachable by default. Indicates that there is no value (as distinct from ). This is the default token type if no data has been read by the . Indicates that the token type is the start of a JSON object. Indicates that the token type is the end of a JSON object. Indicates that the token type is the start of a JSON array. Indicates that the token type is the end of a JSON array. Indicates that the token type is a JSON property name. Indicates that the token type is the comment string. Indicates that the token type is a JSON string. Indicates that the token type is a JSON number. Indicates that the token type is the JSON literal true. Indicates that the token type is the JSON literal false. Indicates that the token type is the JSON literal null. Represents a mutable JSON array. It is safe to perform multiple concurrent read operations on a , but issues can occur if the collection is modified while it's being read. Initializes a new instance of the class that is empty. Options to control the behavior. Initializes a new instance of the class that contains items from the specified params array. Options to control the behavior. The items to add to the new . Initializes a new instance of the class that contains items from the specified array. The items to add to the new . Initializes a new instance of the class that contains items from the specified . The new instance of the class that contains items from the specified . The . Options to control the behavior. The is not a . Adds an object to the end of the . The type of object to be added. The object to be added to the end of the . Gets the number of elements contained in the . Adds a to the end of the . The to be added to the end of the . Removes all elements from the . Determines whether an element is in the . The object to locate in the . if is found in the ; otherwise, . The object to locate in the . The to locate in the . The index of item if found in the list; otherwise, -1. Inserts an element into the at the specified index. The zero-based index at which should be inserted. The to insert. is less than 0 or is greater than . Removes the first occurrence of a specific from the . The to remove from the . if is successfully removed; otherwise, . Removes the element at the specified index of the . The zero-based index of the element to remove. is less than 0 or is greater than . Copies the entire to a compatible one-dimensional array, starting at the specified index of the target array. The one-dimensional that is the destination of the elements copied from . The Array must have zero-based indexing. The zero-based index in at which copying begins. is . is less than 0. The number of elements in the source ICollection is greater than the available space from to the end of the destination . Returns an enumerator that iterates through the . A for the . Returns an enumerator that iterates through the . A for the . Returns . The base class that represents a single node within a mutable JSON document. to specify that a type declared as an should be deserialized as a . Options to control the behavior. Casts to the derived type. A . The node is not a . Casts to the derived type. A . The node is not a . Casts to the derived type. A . The node is not a . Gets the parent . If there is no parent, is returned. A parent can either be a or a . Gets the JSON path. The JSON Path value. Gets the root . If the current is a root, is returned. Gets the value for the current . {T} can be the type or base type of the underlying value. If the underlying value is a then {T} can also be the type of any primitive value supported by current . Specifying the type for {T} will always succeed and return the underlying value as .
The underlying value of a after deserialization is an instance of , otherwise it's the value specified when the was created.
The current cannot be represented as a {T}. The current is not a or is not compatible with {T}.
Gets or sets the element at the specified index. The zero-based index of the element to get or set. is less than 0 or is greater than the number of properties. The current is not a . Gets or sets the element with the specified property name. If the property is not found, is returned. The name of the property to return. is . The current is not a . Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an implicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Defines an explicit conversion of a given to a . A to implicitly convert. Parses one JSON value (including objects or arrays) from the provided reader. The reader to read. Options to control the behavior. The from the reader. If the property of is or , the reader will be advanced by one call to to determine the start of the value. Upon completion of this method, will be positioned at the final token in the JSON value. If an exception is thrown, the reader is reset to the state it was in when the method was called. This method makes a copy of the data the reader acted on, so there is no caller requirement to maintain data integrity beyond the return of this method. is using unsupported options. The current token does not start or represent a value. A value could not be read from the reader. Parses text representing a single JSON value. JSON text to parse. Options to control the node behavior after parsing. Options to control the document behavior during parsing. A representation of the JSON value. is . does not represent a valid single JSON value. Parses text representing a single JSON value. JSON text to parse. Options to control the node behavior after parsing. Options to control the document behavior during parsing. A representation of the JSON value. does not represent a valid single JSON value. Parse a as UTF-8-encoded data representing a single JSON value into a . The Stream will be read to completion. JSON text to parse. Options to control the node behavior after parsing. Options to control the document behavior during parsing. A representation of the JSON value. does not represent a valid single JSON value. Converts the current instance to string in JSON format. Options to control the serialization behavior. JSON representation of current instance. Gets a string representation for the current value appropriate to the node type. A string representation for the current value appropriate to the node type. Write the into the provided as JSON. The . The parameter is . Options to control the serialization behavior. Options to control behavior. Specifies whether property names on are case insensitive. Represents a mutable JSON object. It's safe to perform multiple concurrent read operations on a , but issues can occur if the collection is modified while it's being read. Initializes a new instance of the class that is empty. Options to control the behavior. Initializes a new instance of the class that contains the specified . The properties to be added. Options to control the behavior. Initializes a new instance of the class that contains properties from the specified . The new instance of the class that contains properties from the specified . The . Options to control the behavior. A . Returns the value of a property with the specified name. The name of the property to return. The JSON value of the property with the specified name. if a property with the specified name was found; otherwise, . Adds an element with the provided property name and value to the . The property name of the element to add. The value of the element to add. is . An element with the same property name already exists in the . Adds the specified property to the . The KeyValuePair structure representing the property name and value to add to the . An element with the same property name already exists in the . The property name of is . Removes all elements from the . Determines whether the contains an element with the specified property name. The property name to locate in the . if the contains an element with the specified property name; otherwise, . is . Gets the number of elements contained in . Removes the element with the specified property name from the . The property name of the element to remove. if the element is successfully removed; otherwise, . is . Determines whether the contains a specific property name and reference. The element to locate in the . if the contains an element with the property name; otherwise, . Copies the elements of the to an array of type KeyValuePair starting at the specified array index. The one-dimensional Array that is the destination of the elements copied from . The zero-based index in at which copying begins. is . is less than 0. The number of elements in the source ICollection is greater than the available space from to the end of the destination . Returns an enumerator that iterates through the . An enumerator that iterates through the . Removes a key and value from the . The KeyValuePair structure representing the property name and value to remove from the . if the element is successfully removed; otherwise, . Gets a collection containing the property names in the . Gets a collection containing the property values in the . Gets the value associated with the specified property name. The property name of the value to get. When this method returns, contains the value associated with the specified property name, if the property name is found; otherwise, . if the contains an element with the specified property name; otherwise, . is . Returns . Returns an enumerator that iterates through the . An enumerator that iterates through the . Represents a mutable JSON value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The underlying value of the new instance. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The new instance of the class that contains the specified value. The type of value to create. The value to create. Options to control the behavior. The new instance of the class that contains the specified value. Initializes a new instance of the class that contains the specified value. The new instance of the class that contains the specified value. The type of value to create. The value to create. The that will be used to serialize the value. Options to control the behavior. The new instance of the class that contains the specified value. Tries to obtain the current JSON value and returns a value that indicates whether the operation succeeded. {T} can be the type or base type of the underlying value. If the underlying value is a then {T} can also be the type of any primitive value supported by current . Specifying the type for {T} will always succeed and return the underlying value as .
The underlying value of a after deserialization is an instance of , otherwise it's the value specified when the was created.
The type of value to obtain. When this method returns, contains the parsed value. if the value can be successfully obtained; otherwise, .
Not trim-safe since it calls JsonSerializer.Serialize(JsonSerializerOptions). Trim-safe since it either calls the converter directly or calls the JsonSerializer.Serialize(JsonTypeInfo{TValue}). This enum captures the tri-state return value when trying to read a JSON number. Reached a valid end of number and hence no action is required. Successfully processed a portion of the number and need to read to the next region of the number. Observed incomplete data. Return false if we have more data to follow. Otherwise throw. This enum captures the tri-state return value when trying to read the next JSON token. Reached a valid end of token and hence no action is required. Observed incomplete data but progressed state partially in looking ahead. Return false and roll-back to a previously saved state. Observed incomplete data but no change was made to the state. Return false, but do not roll-back anything since nothing changed. Copies the UTF-8 code unit representation of this scalar to an output buffer. The buffer must be large enough to hold the required number of s. Provides the ability for the user to define custom behavior when reading JSON. Defines how the should handle comments when reading through the JSON. Thrown when the comment handling enum is set to a value that is not supported (i.e. not within the enum range). By default is thrown if a comment is encountered. Gets or sets the maximum depth allowed when reading JSON, with the default (i.e. 0) indicating a max depth of 64. Thrown when the max depth is set to a negative value. Reading past this depth will throw a . Defines whether an extra comma at the end of a list of JSON values in an object or array is allowed (and ignored) within the JSON payload being read. By default, it's set to false, and is thrown if a trailing comma is encountered. Defines an opaque type that holds and saves all the relevant state information which must be provided to the to continue reading after processing incomplete data. This type is required to support reentrancy when reading incomplete data, and to continue reading once more data is available. Unlike the , which is a ref struct, this type can survive across async/await boundaries and hence this type is required to provide support for reading in more data asynchronously before continuing with a new instance of the . Constructs a new instance. Defines the customized behavior of the that is different from the JSON RFC (for example how to handle comments or maximum depth allowed when reading). By default, the follows the JSON RFC strictly (i.e. comments within the JSON are invalid) and reads up to a maximum depth of 64. An instance of this state must be passed to the ctor with the JSON data. Unlike the , which is a ref struct, the state can survive across async/await boundaries and hence this type is required to provide support for reading in more data asynchronously before continuing with a new instance of the . Gets the custom behavior when reading JSON using the that may deviate from strict adherence to the JSON specification, which is the default behavior. Provides a high-performance API for forward-only, read-only access to the UTF-8 encoded JSON text. It processes the text sequentially with no caching and adheres strictly to the JSON RFC by default (https://tools.ietf.org/html/rfc8259). When it encounters invalid JSON, it throws a JsonException with basic error information like line number and byte position on the line. Since this type is a ref struct, it does not directly support async. However, it does provide support for reentrancy to read incomplete data, and continue reading once more data is presented. To be able to set max depth while reading OR allow skipping comments, create an instance of and pass that in to the reader. Gets the value of the last processed token as a ReadOnlySpan<byte> slice of the input payload. If the JSON is provided within a ReadOnlySequence<byte> and the slice that represents the token value fits in a single segment, then will contain the sliced value since it can be represented as a span. Otherwise, the will contain the token value. If is true, contains useless data, likely for a previous single-segment token. Therefore, only access if is false. Otherwise, the token value must be accessed from . Returns the total amount of bytes consumed by the so far for the current instance of the with the given UTF-8 encoded input text. Returns the index that the last processed JSON token starts at within the given UTF-8 encoded input text, skipping any white space. For JSON strings (including property names), this points to before the start quote. For comments, this points to before the first comment delimiter (i.e. '/'). Tracks the recursive depth of the nested objects / arrays within the JSON text processed so far. This provides the depth of the current token. Gets the type of the last processed JSON token in the UTF-8 encoded JSON text. Lets the caller know which of the two 'Value' properties to read to get the token value. For input data within a ReadOnlySpan<byte> this will always return false. For input data within a ReadOnlySequence<byte>, this will only return true if the token value straddles more than a single segment and hence couldn't be represented as a span. Returns the mode of this instance of the . True when the reader was constructed with the input span containing the entire data to process. False when the reader was constructed knowing that the input span may contain partial data with more data to follow. Gets the value of the last processed token as a ReadOnlySpan<byte> slice of the input payload. If the JSON is provided within a ReadOnlySequence<byte> and the slice that represents the token value fits in a single segment, then will contain the sliced value since it can be represented as a span. Otherwise, the will contain the token value. If is false, contains useless data, likely for a previous multi-segment token. Therefore, only access if is true. Otherwise, the token value must be accessed from . Returns the current within the provided UTF-8 encoded input ReadOnlySequence<byte>. If the was constructed with a ReadOnlySpan<byte> instead, this will always return a default . Returns the current snapshot of the state which must be captured by the caller and passed back in to the ctor with more data. Unlike the , which is a ref struct, the state can survive across async/await boundaries and hence this type is required to provide support for reading in more data asynchronously before continuing with a new instance of the . Constructs a new instance. The ReadOnlySpan<byte> containing the UTF-8 encoded JSON text to process. True when the input span contains the entire data to process. Set to false only if it is known that the input span contains partial data with more data to follow. If this is the first call to the ctor, pass in a default state. Otherwise, capture the state from the previous instance of the and pass that back. Since this type is a ref struct, it is a stack-only type and all the limitations of ref structs apply to it. This is the reason why the ctor accepts a . Constructs a new instance. The ReadOnlySpan<byte> containing the UTF-8 encoded JSON text to process. Defines the customized behavior of the that is different from the JSON RFC (for example how to handle comments or maximum depth allowed when reading). By default, the follows the JSON RFC strictly (i.e. comments within the JSON are invalid) and reads up to a maximum depth of 64. Since this type is a ref struct, it is a stack-only type and all the limitations of ref structs apply to it. This assumes that the entire JSON payload is passed in (equivalent to = true) Read the next JSON token from input source. True if the token was read successfully, else false. Thrown when an invalid JSON token is encountered according to the JSON RFC or if the current depth exceeds the recursive limit set by the max depth. Skips the children of the current JSON token. Thrown when the reader was given partial data with more data to follow (i.e. is false). Thrown when an invalid JSON token is encountered while skipping, according to the JSON RFC, or if the current depth exceeds the recursive limit set by the max depth. When is , the reader first moves to the property value. When (originally, or after advancing) is or , the reader advances to the matching or . For all other token types, the reader does not move. After the next call to , the reader will be at the next value (when in an array), the next property name (when in an object), or the end array/object token. Tries to skip the children of the current JSON token. True if there was enough data for the children to be skipped successfully, else false. Thrown when an invalid JSON token is encountered while skipping, according to the JSON RFC, or if the current depth exceeds the recursive limit set by the max depth. If the reader did not have enough data to completely skip the children of the current token, it will be reset to the state it was in before the method was called. When is , the reader first moves to the property value. When (originally, or after advancing) is or , the reader advances to the matching or . For all other token types, the reader does not move. After the next call to , the reader will be at the next value (when in an array), the next property name (when in an object), or the end array/object token. Compares the UTF-8 encoded text to the unescaped JSON token value in the source and returns true if they match. The UTF-8 encoded text to compare against. True if the JSON token value in the source matches the UTF-8 encoded look up text. Thrown if trying to find a text match on a JSON token that is not a string (i.e. other than or ). If the look up text is invalid UTF-8 text, the method will return false since you cannot have invalid UTF-8 within the JSON payload. The comparison of the JSON token value in the source and the look up text is done by first unescaping the JSON value in source, if required. The look up text is matched as is, without any modifications to it. Compares the string text to the unescaped JSON token value in the source and returns true if they match. The text to compare against. True if the JSON token value in the source matches the look up text. Thrown if trying to find a text match on a JSON token that is not a string (i.e. other than or ). If the look up text is invalid UTF-8 text, the method will return false since you cannot have invalid UTF-8 within the JSON payload. The comparison of the JSON token value in the source and the look up text is done by first unescaping the JSON value in source, if required. The look up text is matched as is, without any modifications to it. Compares the text to the unescaped JSON token value in the source and returns true if they match. The text to compare against. True if the JSON token value in the source matches the look up text. Thrown if trying to find a text match on a JSON token that is not a string (i.e. other than or ). If the look up text is invalid or incomplete UTF-16 text (i.e. unpaired surrogates), the method will return false since you cannot have invalid UTF-16 within the JSON payload. The comparison of the JSON token value in the source and the look up text is done by first unescaping the JSON value in source, if required. The look up text is matched as is, without any modifications to it. This method contains the logic for processing the next value token and determining what type of data it is. This method consumes the next token regardless of whether we are inside an object or an array. For an object, it reads the next property name token. For an array, it just reads the next value. Constructs a new instance. The ReadOnlySequence<byte> containing the UTF-8 encoded JSON text to process. True when the input span contains the entire data to process. Set to false only if it is known that the input span contains partial data with more data to follow. If this is the first call to the ctor, pass in a default state. Otherwise, capture the state from the previous instance of the and pass that back. Since this type is a ref struct, it is a stack-only type and all the limitations of ref structs apply to it. This is the reason why the ctor accepts a . Constructs a new instance. The ReadOnlySequence<byte> containing the UTF-8 encoded JSON text to process. Defines the customized behavior of the that is different from the JSON RFC (for example how to handle comments or maximum depth allowed when reading). By default, the follows the JSON RFC strictly (i.e. comments within the JSON are invalid) and reads up to a maximum depth of 64. Since this type is a ref struct, it is a stack-only type and all the limitations of ref structs apply to it. This assumes that the entire JSON payload is passed in (equivalent to = true) This method contains the logic for processing the next value token and determining what type of data it is. This method consumes the next token regardless of whether we are inside an object or an array. For an object, it reads the next property name token. For an array, it just reads the next value. Parses the current JSON token value from the source, unescaped, and transcoded as a . Returns when is . Thrown if trying to get the value of the JSON token that is not a string (i.e. other than , or ). It will also throw when the JSON string contains invalid UTF-8 bytes, or invalid UTF-16 surrogates. Parses the current JSON token value from the source as a comment, transcoded as a . Thrown if trying to get the value of the JSON token that is not a comment. Parses the current JSON token value from the source as a . Returns if the TokenType is JsonTokenType.True and if the TokenType is JsonTokenType.False. Thrown if trying to get the value of a JSON token that is not a boolean (i.e. or ). Parses the current JSON token value from the source and decodes the Base64 encoded JSON string as bytes. Thrown if trying to get the value of a JSON token that is not a . The JSON string contains data outside of the expected Base64 range, or if it contains invalid/more than two padding characters, or is incomplete (i.e. the JSON string length is not a multiple of 4). Parses the current JSON token value from the source as a . Returns the value if the entire UTF-8 encoded token value can be successfully parsed to a value. Throws exceptions otherwise. Thrown if trying to get the value of a JSON token that is not a . Thrown if the JSON token value is either of incorrect numeric format (for example if it contains a decimal or is written in scientific notation) or, it represents a number less than or greater than . Parses the current JSON token value from the source as an . Returns the value if the entire UTF-8 encoded token value can be successfully parsed to an value. Throws exceptions otherwise. Thrown if trying to get the value of a JSON token that is not a . Thrown if the JSON token value is either of incorrect numeric format (for example if it contains a decimal or is written in scientific notation) or, it represents a number less than or greater than . Parses the current JSON token value from the source as a . Returns the value if the entire UTF-8 encoded token value can be successfully parsed to a value. Throws exceptions otherwise. Thrown if trying to get the value of a JSON token that is not a . Thrown if the JSON token value is either of incorrect numeric format (for example if it contains a decimal or is written in scientific notation) or, it represents a number less than or greater than . Parses the current JSON token value from the source as an . Returns the value if the entire UTF-8 encoded token value can be successfully parsed to an value. Throws exceptions otherwise. Thrown if trying to get the value of a JSON token that is not a . Thrown if the JSON token value is either of incorrect numeric format (for example if it contains a decimal or is written in scientific notation) or, it represents a number less than or greater than . Parses the current JSON token value from the source as a . Returns the value if the entire UTF-8 encoded token value can be successfully parsed to a value. Throws exceptions otherwise. Thrown if trying to get the value of a JSON token that is not a . Thrown if the JSON token value is either of incorrect numeric format (for example if it contains a decimal or is written in scientific notation) or, it represents a number less than or greater than . Parses the current JSON token value from the source as a . Returns the value if the entire UTF-8 encoded token value can be successfully parsed to a value. Throws exceptions otherwise. Thrown if trying to get the value of a JSON token that is not a . Thrown if the JSON token value is either of incorrect numeric format (for example if it contains a decimal or is written in scientific notation) or, it represents a number less than or greater than . Parses the current JSON token value from the source as a . Returns the value if the entire UTF-8 encoded token value can be successfully parsed to a value. Throws exceptions otherwise. Thrown if trying to get the value of a JSON token that is not a . Thrown if the JSON token value is either of incorrect numeric format (for example if it contains a decimal or is written in scientific notation) or, it represents a number less than or greater than . Parses the current JSON token value from the source as a . Returns the value if the entire UTF-8 encoded token value can be successfully parsed to a value. Throws exceptions otherwise. Thrown if trying to get the value of a JSON token that is not a . Thrown if the JSON token value is either of incorrect numeric format (for example if it contains a decimal or is written in scientific notation) or, it represents a number less than or greater than . Parses the current JSON token value from the source as a . Returns the value if the entire UTF-8 encoded token value can be successfully parsed to a value. Throws exceptions otherwise. Thrown if trying to get the value of a JSON token that is not a . On any framework that is not .NET Core 3.0 or higher, thrown if the JSON token value represents a number less than or greater than . Parses the current JSON token value from the source as a . Returns the value if the entire UTF-8 encoded token value can be successfully parsed to a value. Throws exceptions otherwise. Thrown if trying to get the value of a JSON token that is not a . On any framework that is not .NET Core 3.0 or higher, thrown if the JSON token value represents a number less than or greater than . Parses the current JSON token value from the source as a . Returns the value if the entire UTF-8 encoded token value can be successfully parsed to a value. Throws exceptions otherwise. Thrown if trying to get the value of a JSON token that is not a . Thrown if the JSON token value represents a number less than or greater than . Parses the current JSON token value from the source as a . Returns the value if the entire UTF-8 encoded token value can be successfully parsed to a value. Throws exceptions otherwise. Thrown if trying to get the value of a JSON token that is not a . Thrown if the JSON token value is of an unsupported format. Only a subset of ISO 8601 formats are supported. Parses the current JSON token value from the source as a . Returns the value if the entire UTF-8 encoded token value can be successfully parsed to a value. Throws exceptions otherwise. Thrown if trying to get the value of a JSON token that is not a . Thrown if the JSON token value is of an unsupported format. Only a subset of ISO 8601 formats are supported. Parses the current JSON token value from the source as a . Returns the value if the entire UTF-8 encoded token value can be successfully parsed to a value. Throws exceptions otherwise. Thrown if trying to get the value of a JSON token that is not a . Thrown if the JSON token value is of an unsupported format for a Guid. Parses the current JSON token value from the source and decodes the Base64 encoded JSON string as bytes. Returns if the entire token value is encoded as valid Base64 text and can be successfully decoded to bytes. Returns otherwise. Thrown if trying to get the value of a JSON token that is not a . Parses the current JSON token value from the source as a . Returns if the entire UTF-8 encoded token value can be successfully parsed to a value. Returns otherwise. Thrown if trying to get the value of a JSON token that is not a . Parses the current JSON token value from the source as an . Returns if the entire UTF-8 encoded token value can be successfully parsed to an value. Returns otherwise. Thrown if trying to get the value of a JSON token that is not a . Parses the current JSON token value from the source as a . Returns if the entire UTF-8 encoded token value can be successfully parsed to a value. Returns otherwise. Thrown if trying to get the value of a JSON token that is not a . Parses the current JSON token value from the source as an . Returns if the entire UTF-8 encoded token value can be successfully parsed to an value. Returns otherwise. Thrown if trying to get the value of a JSON token that is not a . Parses the current JSON token value from the source as a . Returns if the entire UTF-8 encoded token value can be successfully parsed to a value. Returns otherwise. Thrown if trying to get the value of a JSON token that is not a . Parses the current JSON token value from the source as a . Returns if the entire UTF-8 encoded token value can be successfully parsed to a value. Returns otherwise. Thrown if trying to get the value of a JSON token that is not a . Parses the current JSON token value from the source as a . Returns if the entire UTF-8 encoded token value can be successfully parsed to a value. Returns otherwise. Thrown if trying to get the value of a JSON token that is not a . Parses the current JSON token value from the source as a . Returns if the entire UTF-8 encoded token value can be successfully parsed to a value. Returns otherwise. Thrown if trying to get the value of a JSON token that is not a . Parses the current JSON token value from the source as a . Returns if the entire UTF-8 encoded token value can be successfully parsed to a value. Returns otherwise. Thrown if trying to get the value of a JSON token that is not a . Parses the current JSON token value from the source as a . Returns if the entire UTF-8 encoded token value can be successfully parsed to a value. Returns otherwise. Thrown if trying to get the value of a JSON token that is not a . Parses the current JSON token value from the source as a . Returns if the entire UTF-8 encoded token value can be successfully parsed to a value. Returns otherwise. Thrown if trying to get the value of a JSON token that is not a . Parses the current JSON token value from the source as a . Returns if the entire UTF-8 encoded token value can be successfully parsed to a value. Returns otherwise. Thrown if trying to get the value of a JSON token that is not a . Parses the current JSON token value from the source as a . Returns if the entire UTF-8 encoded token value can be successfully parsed to a value. Returns otherwise. Thrown if trying to get the value of a JSON token that is not a . Parses the current JSON token value from the source as a . Returns if the entire UTF-8 encoded token value can be successfully parsed to a value. Only supports values with hyphens and without any surrounding decorations. Returns otherwise. Thrown if trying to get the value of a JSON token that is not a . Constructor arguments for objects with parameterized ctors with less than 5 parameters. This is to avoid boxing for small, immutable objects. Holds relevant state when deserializing objects with parameterized constructors. Lives on the current ReadStackFrame. Provides functionality to serialize objects or value types to JSON and deserialize JSON into objects or value types. Converts the representing a single JSON value into a . A representation of the JSON value. The to convert. Options to control the behavior during parsing. is . is not compatible with the JSON. There is no compatible for or its serializable members. Converts the representing a single JSON value into a . A representation of the JSON value. The to convert. The type of the object to convert to and return. Options to control the behavior during parsing. or is . is not compatible with the JSON. There is no compatible for or its serializable members. Converts the representing a single JSON value into a . A representation of the JSON value. The to convert. Metadata about the type to convert. is . -or- is . is not compatible with the JSON. There is no compatible for or its serializable members. Converts the representing a single JSON value into a . A representation of the JSON value. The to convert. The type of the object to convert to and return. A metadata provider for serializable types. is . -or- is . -or- is . The JSON is invalid. -or- is not compatible with the JSON. -or- There is remaining data in the string beyond a single JSON value. There is no compatible for or its serializable members. The method of the provided returns for the type to convert. Converts the representing a single JSON value into a . A representation of the JSON value. The to convert. Options to control the behavior during parsing. is not compatible with the JSON. There is no compatible for or its serializable members. Converts the representing a single JSON value into a . A representation of the JSON value. The to convert. The type of the object to convert to and return. Options to control the behavior during parsing. is . is not compatible with the JSON. There is no compatible for or its serializable members. Converts the representing a single JSON value into a . A representation of the JSON value. The to convert. Metadata about the type to convert. is . is not compatible with the JSON. There is no compatible for or its serializable members. Converts the representing a single JSON value into a . A representation of the JSON value. The to convert. The type of the object to convert to and return. A metadata provider for serializable types. is . -or- is . The JSON is invalid. -or- is not compatible with the JSON. -or- There is remaining data in the string beyond a single JSON value. There is no compatible for or its serializable members. The method of the provided returns for the type to convert. Converts the representing a single JSON value into a . A representation of the JSON value. The to convert. Options to control the behavior during parsing. is not compatible with the JSON. There is no compatible for or its serializable members. Converts the representing a single JSON value into a . A representation of the JSON value. The to convert. The type of the object to convert to and return. Options to control the behavior during parsing. is not compatible with the JSON. There is no compatible for or its serializable members. Converts the representing a single JSON value into a . A representation of the JSON value. The to convert. Metadata about the type to convert. is . is not compatible with the JSON. There is no compatible for or its serializable members. Converts the representing a single JSON value into a . A representation of the JSON value. The to convert. The type of the object to convert to and return. A metadata provider for serializable types. is . -or- is . The JSON is invalid. -or- is not compatible with the JSON. -or- There is remaining data in the string beyond a single JSON value. There is no compatible for or its serializable members. The method of the provided returns for the type to convert. Converts the provided value into a . A representation of the JSON value. The value to convert. Options to control the conversion behavior. There is no compatible for or its serializable members. Converts the provided value into a . A representation of the value. The value to convert. The type of the to convert. Options to control the conversion behavior. is not compatible with . is . There is no compatible for or its serializable members. Converts the provided value into a . A representation of the value. The value to convert. Metadata about the type to convert. There is no compatible for or its serializable members. is . Converts the provided value into a . A representation of the value. The value to convert. The type of the to convert. A metadata provider for serializable types. There is no compatible for or its serializable members. The method of the provided returns for the type to convert. or is . Converts the provided value into a . A representation of the JSON value. The value to convert. Options to control the conversion behavior. There is no compatible for or its serializable members. Converts the provided value into a . A representation of the value. The value to convert. The type of the to convert. Options to control the conversion behavior. is not compatible with . is . There is no compatible for or its serializable members. Converts the provided value into a . A representation of the value. The value to convert. Metadata about the type to convert. There is no compatible for or its serializable members. is . Converts the provided value into a . A representation of the value. The value to convert. The type of the to convert. A metadata provider for serializable types. There is no compatible for or its serializable members. The method of the provided returns for the type to convert. or is . Converts the provided value into a . A representation of the JSON value. The value to convert. Options to control the conversion behavior. There is no compatible for or its serializable members. Converts the provided value into a . A representation of the value. The value to convert. The type of the to convert. Options to control the conversion behavior. is not compatible with . is . There is no compatible for or its serializable members. Converts the provided value into a . A representation of the value. The value to convert. Metadata about the type to convert. There is no compatible for or its serializable members. is . Converts the provided value into a . A representation of the value. The value to convert. The type of the to convert. A metadata provider for serializable types. There is no compatible for or its serializable members. The method of the provided returns for the type to convert. or is . Returns true if successful, false is the reader ran out of buffer. Sets state.Current.ReturnValue to the reference target for $ref cases; Sets state.Current.ReturnValue to a new instance for $id cases. Returns true if successful, false is the reader ran out of buffer. Sets state.Current.ReturnValue to the reference target for $ref cases; Sets state.Current.ReturnValue to a new instance for $id cases. Lookup the property given its name (obtained from the reader) and return it. Also sets state.Current.JsonPropertyInfo to a non-null value. Parses the UTF-8 encoded text representing a single JSON value into a . A representation of the JSON value. JSON text to parse. Options to control the behavior during parsing. The JSON is invalid, is not compatible with the JSON, or when there is remaining data in the Stream. There is no compatible for or its serializable members. Parses the UTF-8 encoded text representing a single JSON value into a . A representation of the JSON value. JSON text to parse. The type of the object to convert to and return. Options to control the behavior during parsing. is . The JSON is invalid, is not compatible with the JSON, or when there is remaining data in the Stream. There is no compatible for or its serializable members. Parses the UTF-8 encoded text representing a single JSON value into a . A representation of the JSON value. JSON text to parse. Metadata about the type to convert. The JSON is invalid, is not compatible with the JSON, or when there is remaining data in the Stream. There is no compatible for or its serializable members. Parses the UTF-8 encoded text representing a single JSON value into a . A representation of the JSON value. JSON text to parse. The type of the object to convert to and return. A metadata provider for serializable types. is . The JSON is invalid, is not compatible with the JSON, or when there is remaining data in the Stream. There is no compatible for or its serializable members. The method on the provided did not return a compatible for . Reads the UTF-8 encoded text representing a single JSON value into a . The Stream will be read to completion. A representation of the JSON value. JSON data to parse. Options to control the behavior during reading. The that can be used to cancel the read operation. is . The JSON is invalid, is not compatible with the JSON, or when there is remaining data in the Stream. There is no compatible for or its serializable members. Reads the UTF-8 encoded text representing a single JSON value into a . The Stream will be read to completion. A representation of the JSON value. JSON data to parse. Options to control the behavior during reading. is . The JSON is invalid, is not compatible with the JSON, or when there is remaining data in the Stream. There is no compatible for or its serializable members. Reads the UTF-8 encoded text representing a single JSON value into a . The Stream will be read to completion. A representation of the JSON value. JSON data to parse. The type of the object to convert to and return. Options to control the behavior during reading. The that can be used to cancel the read operation. or is . The JSON is invalid, the is not compatible with the JSON, or when there is remaining data in the Stream. There is no compatible for or its serializable members. Reads the UTF-8 encoded text representing a single JSON value into a . The Stream will be read to completion. A representation of the JSON value. JSON data to parse. The type of the object to convert to and return. Options to control the behavior during reading. or is . The JSON is invalid, the is not compatible with the JSON, or when there is remaining data in the Stream. There is no compatible for or its serializable members. Reads the UTF-8 encoded text representing a single JSON value into a . The Stream will be read to completion. A representation of the JSON value. JSON data to parse. Metadata about the type to convert. The that can be used to cancel the read operation. or is . The JSON is invalid, is not compatible with the JSON, or when there is remaining data in the Stream. There is no compatible for or its serializable members. Reads the UTF-8 encoded text representing a single JSON value into a . The Stream will be read to completion. A representation of the JSON value. JSON data to parse. Metadata about the type to convert. or is . The JSON is invalid, is not compatible with the JSON, or when there is remaining data in the Stream. There is no compatible for or its serializable members. Reads the UTF-8 encoded text representing a single JSON value into a . The Stream will be read to completion. A representation of the JSON value. JSON data to parse. The type of the object to convert to and return. A metadata provider for serializable types. The that can be used to cancel the read operation. , , or is . The JSON is invalid, the is not compatible with the JSON, or when there is remaining data in the Stream. There is no compatible for or its serializable members. The method on the provided did not return a compatible for . Reads the UTF-8 encoded text representing a single JSON value into a . The Stream will be read to completion. A representation of the JSON value. JSON data to parse. The type of the object to convert to and return. A metadata provider for serializable types. , , or is . The JSON is invalid, the is not compatible with the JSON, or when there is remaining data in the Stream. There is no compatible for or its serializable members. The method on the provided did not return a compatible for . Wraps the UTF-8 encoded text into an that can be used to deserialize root-level JSON arrays in a streaming manner. An representation of the provided JSON array. JSON data to parse. Options to control the behavior during reading. The that can be used to cancel the read operation. An representation of the JSON value. is . Read from the stream until either our buffer is filled or we hit EOF. Calling ReadCore is relatively expensive, so we minimize the number of times we need to call it. Read from the stream until either our buffer is filled or we hit EOF. Calling ReadCore is relatively expensive, so we minimize the number of times we need to call it. Parses the text representing a single JSON value into a . A representation of the JSON value. JSON text to parse. Options to control the behavior during parsing. is . The JSON is invalid. -or- is not compatible with the JSON. -or- There is remaining data in the string beyond a single JSON value. There is no compatible for or its serializable members. Using a is not as efficient as using the UTF-8 methods since the implementation natively uses UTF-8. Parses the text representing a single JSON value into an instance of the type specified by a generic type parameter. A representation of the JSON value. The JSON text to parse. Options to control the behavior during parsing. The JSON is invalid. -or- is not compatible with the JSON. -or- There is remaining data in the span beyond a single JSON value. There is no compatible for or its serializable members. Using a UTF-16 span is not as efficient as using the UTF-8 methods since the implementation natively uses UTF-8. Parses the text representing a single JSON value into a . A representation of the JSON value. JSON text to parse. The type of the object to convert to and return. Options to control the behavior during parsing. or is . The JSON is invalid. -or- is not compatible with the JSON. -or- There is remaining data in the string beyond a single JSON value. There is no compatible for or its serializable members. Using a is not as efficient as using the UTF-8 methods since the implementation natively uses UTF-8. Parses the text representing a single JSON value into an instance of a specified type. A representation of the JSON value. The JSON text to parse. The type of the object to convert to and return. Options to control the behavior during parsing. is . The JSON is invalid. -or- is not compatible with the JSON. -or- There is remaining data in the span beyond a single JSON value. There is no compatible for or its serializable members. Using a UTF-16 span is not as efficient as using the UTF-8 methods since the implementation natively uses UTF-8. Parses the text representing a single JSON value into a . A representation of the JSON value. JSON text to parse. Metadata about the type to convert. is . -or- is . The JSON is invalid. -or- is not compatible with the JSON. -or- There is remaining data in the string beyond a single JSON value. There is no compatible for or its serializable members. Using a is not as efficient as using the UTF-8 methods since the implementation natively uses UTF-8. Parses the text representing a single JSON value into a . A representation of the JSON value. JSON text to parse. Metadata about the type to convert. is . -or- is . The JSON is invalid. -or- is not compatible with the JSON. -or- There is remaining data in the string beyond a single JSON value. There is no compatible for or its serializable members. Using a is not as efficient as using the UTF-8 methods since the implementation natively uses UTF-8. Parses the text representing a single JSON value into a . A representation of the JSON value. JSON text to parse. The type of the object to convert to and return. A metadata provider for serializable types. or is . -or- is . The JSON is invalid. -or- is not compatible with the JSON. -or- There is remaining data in the string beyond a single JSON value. There is no compatible for or its serializable members. The method of the provided returns for the type to convert. Using a is not as efficient as using the UTF-8 methods since the implementation natively uses UTF-8. Parses the text representing a single JSON value into a . A representation of the JSON value. JSON text to parse. The type of the object to convert to and return. A metadata provider for serializable types. or is . -or- is . The JSON is invalid. -or- is not compatible with the JSON. -or- There is remaining data in the string beyond a single JSON value. There is no compatible for or its serializable members. The method of the provided returns for the type to convert. Using a is not as efficient as using the UTF-8 methods since the implementation natively uses UTF-8. Reads one JSON value (including objects or arrays) from the provided reader into a . A representation of the JSON value. The reader to read. Options to control the serializer behavior during reading. The JSON is invalid, is not compatible with the JSON, or a value could not be read from the reader. is using unsupported options. There is no compatible for or its serializable members. If the property of is or , the reader will be advanced by one call to to determine the start of the value. Upon completion of this method, will be positioned at the final token in the JSON value. If an exception is thrown, the reader is reset to the state it was in when the method was called. This method makes a copy of the data the reader acted on, so there is no caller requirement to maintain data integrity beyond the return of this method. The used to create the instance of the take precedence over the when they conflict. Hence, , , and are used while reading. Reads one JSON value (including objects or arrays) from the provided reader into a . A representation of the JSON value. The reader to read. The type of the object to convert to and return. Options to control the serializer behavior during reading. is . The JSON is invalid, is not compatible with the JSON, or a value could not be read from the reader. is using unsupported options. There is no compatible for or its serializable members. If the property of is or , the reader will be advanced by one call to to determine the start of the value. Upon completion of this method, will be positioned at the final token in the JSON value. If an exception is thrown, the reader is reset to the state it was in when the method was called. This method makes a copy of the data the reader acted on, so there is no caller requirement to maintain data integrity beyond the return of this method. The used to create the instance of the take precedence over the when they conflict. Hence, , , and are used while reading. Reads one JSON value (including objects or arrays) from the provided reader into a . A representation of the JSON value. The reader to read. Metadata about the type to convert. The JSON is invalid, is not compatible with the JSON, or a value could not be read from the reader. is using unsupported options. There is no compatible for or its serializable members. If the property of is or , the reader will be advanced by one call to to determine the start of the value. Upon completion of this method, will be positioned at the final token in the JSON value. If an exception is thrown, the reader is reset to the state it was in when the method was called. This method makes a copy of the data the reader acted on, so there is no caller requirement to maintain data integrity beyond the return of this method. The used to create the instance of the take precedence over the when they conflict. Hence, , , and are used while reading. Reads one JSON value (including objects or arrays) from the provided reader into a . A representation of the JSON value. The reader to read. The type of the object to convert to and return. A metadata provider for serializable types. or is . The JSON is invalid, is not compatible with the JSON, or a value could not be read from the reader. is using unsupported options. There is no compatible for or its serializable members. The method on the provided did not return a compatible for . If the property of is or , the reader will be advanced by one call to to determine the start of the value. Upon completion of this method, will be positioned at the final token in the JSON value. If an exception is thrown, the reader is reset to the state it was in when the method was called. This method makes a copy of the data the reader acted on, so there is no caller requirement to maintain data integrity beyond the return of this method. The used to create the instance of the take precedence over the when they conflict. Hence, , , and are used while reading. Converts the provided value into a array. A UTF-8 representation of the value. The value to convert. Options to control the conversion behavior. There is no compatible for or its serializable members. Converts the provided value into a array. A UTF-8 representation of the value. The value to convert. The type of the to convert. Options to control the conversion behavior. is not compatible with . is . There is no compatible for or its serializable members. Converts the provided value into a array. A UTF-8 representation of the value. The value to convert. Metadata about the type to convert. There is no compatible for or its serializable members. is . Converts the provided value into a array. A UTF-8 representation of the value. The value to convert. The type of the to convert. A metadata provider for serializable types. is not compatible with . is . There is no compatible for or its serializable members. The method of the provided returns for the type to convert. Used by polymorphic converters that are handling references for values that are boxed structs. Converts the provided value to UTF-8 encoded JSON text and write it to the . A task that represents the asynchronous write operation. The UTF-8 to write to. The value to convert. Options to control the conversion behavior. The that can be used to cancel the write operation. is . There is no compatible for or its serializable members. Converts the provided value to UTF-8 encoded JSON text and write it to the . The UTF-8 to write to. The value to convert. Options to control the conversion behavior. is . There is no compatible for or its serializable members. Converts the provided value to UTF-8 encoded JSON text and write it to the . A task that represents the asynchronous write operation. The UTF-8 to write to. The value to convert. The type of the to convert. Options to control the conversion behavior. The that can be used to cancel the write operation. is not compatible with . or is . There is no compatible for or its serializable members. Converts the provided value to UTF-8 encoded JSON text and write it to the . The UTF-8 to write to. The value to convert. The type of the to convert. Options to control the conversion behavior. is not compatible with . or is . There is no compatible for or its serializable members. Converts the provided value to UTF-8 encoded JSON text and write it to the . A task that represents the asynchronous write operation. The UTF-8 to write to. The value to convert. Metadata about the type to convert. The that can be used to cancel the write operation. is . There is no compatible for or its serializable members. Converts the provided value to UTF-8 encoded JSON text and write it to the . The UTF-8 to write to. The value to convert. Metadata about the type to convert. is . There is no compatible for or its serializable members. Converts the provided value to UTF-8 encoded JSON text and write it to the . A task that represents the asynchronous write operation. The UTF-8 to write to. The value to convert. The type of the to convert. A metadata provider for serializable types. The that can be used to cancel the write operation. is not compatible with . , , or is . There is no compatible for or its serializable members. Converts the provided value to UTF-8 encoded JSON text and write it to the . The UTF-8 to write to. The value to convert. The type of the to convert. A metadata provider for serializable types. is not compatible with . , , or is . There is no compatible for or its serializable members. Converts the provided value into a . A representation of the value. The value to convert. Options to control the conversion behavior. There is no compatible for or its serializable members. Using a is not as efficient as using UTF-8 encoding since the implementation internally uses UTF-8. See also and . Converts the provided value into a . A representation of the value. The value to convert. The type of the to convert. Options to control the conversion behavior. is not compatible with . There is no compatible for or its serializable members. is . Using a is not as efficient as using UTF-8 encoding since the implementation internally uses UTF-8. See also and . Converts the provided value into a . A representation of the value. The value to convert. Metadata about the type to convert. There is no compatible for or its serializable members. is . Using a is not as efficient as using UTF-8 encoding since the implementation internally uses UTF-8. See also and . Converts the provided value into a . A representation of the value. The value to convert. The type of the to convert. A metadata provider for serializable types. There is no compatible for or its serializable members. The method of the provided returns for the type to convert. or is . Using a is not as efficient as using UTF-8 encoding since the implementation internally uses UTF-8. See also and . Writes one JSON value (including objects or arrays) to the provided writer. The writer to write. The value to convert and write. Options to control the behavior. is . There is no compatible for or its serializable members. Writes one JSON value (including objects or arrays) to the provided writer. The value to convert and write. The type of the to convert. Options to control the behavior. is not compatible with . or is . There is no compatible for or its serializable members. Writes one JSON value (including objects or arrays) to the provided writer. The writer to write. The value to convert and write. Metadata about the type to convert. or is . There is no compatible for or its serializable members. Writes one JSON value (including objects or arrays) to the provided writer. The value to convert and write. The type of the to convert. A metadata provider for serializable types. is not compatible with . or is . There is no compatible for or its serializable members. The method of the provided returns for the type to convert. Determines how a given class is treated when it is (de)serialized. Although bit flags are used, a given ConverterStrategy can only be one value. Bit flags are used to efficiently compare against more than one value. Signifies what default options are used by . Specifies that general-purpose values should be used. These are the same settings applied if a isn't specified. This option implies that property names are treated as case-sensitive and that "PascalCase" name formatting should be employed. Specifies that values should be used more appropriate to web-based scenarios. This option implies that property names are treated as case-insensitive and that "camelCase" name formatting should be employed. Provides options to be used with . Provides options to be used with . The list of custom converters. Once serialization or deserialization occurs, the list cannot be modified. Returns the converter for the specified type. The type to return a converter for. The converter for the given type. The configured for returned an invalid converter. There is no compatible for or its serializable members. Constructs a new instance. Copies the options from a instance to a new instance. The instance to copy options from. is . Tracks the options instance to enable all instances to be enumerated. Tracks all live JsonSerializerOptions instances. Instances are added to the table in their constructor. Constructs a new instance with a predefined set of options determined by the specified . The to reason about. Binds current instance with a new instance of the specified type. The generic definition of the specified context type. When serializing and deserializing types using the options instance, metadata for the types will be fetched from the context instance. Defines whether an extra comma at the end of a list of JSON values in an object or array is allowed (and ignored) within the JSON payload being deserialized. Thrown if this property is set after serialization or deserialization has occurred. By default, it's set to false, and is thrown if a trailing comma is encountered. The default buffer size in bytes used when creating temporary buffers. The default size is 16K. Thrown when the buffer size is less than 1. Thrown if this property is set after serialization or deserialization has occurred. The encoder to use when escaping strings, or to use the default encoder. Specifies the policy used to convert a key's name to another format, such as camel-casing. This property can be set to to specify a camel-casing policy. It is not used when deserializing. Determines whether null values are ignored during serialization and deserialization. The default value is false. Thrown if this property is set after serialization or deserialization has occurred. or has been set to a non-default value. These properties cannot be used together. Specifies a condition to determine when properties with default values are ignored during serialization or deserialization. The default value is . Thrown if this property is set to . Thrown if this property is set after serialization or deserialization has occurred, or has been set to . These properties cannot be used together. Specifies how number types should be handled when serializing or deserializing. Thrown if this property is set after serialization or deserialization has occurred. Determines whether read-only properties are ignored during serialization. A property is read-only if it contains a public getter but not a public setter. The default value is false. Read-only properties are not deserialized regardless of this setting. Thrown if this property is set after serialization or deserialization has occurred. Determines whether read-only fields are ignored during serialization. A field is read-only if it is marked with the readonly keyword. The default value is false. Read-only fields are not deserialized regardless of this setting. Thrown if this property is set after serialization or deserialization has occurred. Determines whether fields are handled on serialization and deserialization. The default value is false. Thrown if this property is set after serialization or deserialization has occurred. Gets or sets the maximum depth allowed when serializing or deserializing JSON, with the default (i.e. 0) indicating a max depth of 64. Thrown if this property is set after serialization or deserialization has occurred. Thrown when the max depth is set to a negative value. Going past this depth will throw a . Specifies the policy used to convert a property's name on an object to another format, such as camel-casing. The resulting property name is expected to match the JSON payload during deserialization, and will be used when writing the property name during serialization. The policy is not used for properties that have a applied. This property can be set to to specify a camel-casing policy. Determines whether a property's name uses a case-insensitive comparison during deserialization. The default value is false. There is a performance cost associated when the value is true. Defines how the comments are handled during deserialization. Thrown if this property is set after serialization or deserialization has occurred. Thrown when the comment handling enum is set to a value that is not supported (or not within the enum range). By default is thrown if a comment is encountered. Defines how deserializing a type declared as an is handled during deserialization. Defines whether JSON should pretty print which includes: indenting nested JSON tokens, adding new lines, and adding white space between property names and values. By default, the JSON is serialized without any extra white space. Thrown if this property is set after serialization or deserialization has occurred. Configures how object references are handled when reading and writing JSON. Whether needs to be called. Initializes the converters for the reflection-based serializer. must be checked before calling. Return the TypeInfo for root API calls. This has a LRU cache that is intended only for public API calls that specify the root type. Exposes the stackframe that is currently active. Buffer containing all frames in the stack. For performance it is only populated for serialization depths > 1. Tracks the current depth of the stack. If not zero, indicates that the stack is part of a re-entrant continuation of given depth. Bytes consumed in the current loop. Indicates that the state still contains suspended frames waiting re-entry. Internal flag to let us know that we need to read ahead in the inner read loop. Whether we need to read ahead in the inner read loop. Whether we can read without the need of saving state for stream and preserve references cases. Ensures that the stack buffer has sufficient capacity to hold an additional frame. Is the current object a Dictionary. Is the current object an Enumerable. The current state of an object or collection that supports continuation. The values are typically compared with the less-than operator so the ordering is important. The current state of a property that supports continuation. The values are typically compared with the less-than operator so the ordering is important. Exposes the stackframe that is currently active. Buffer containing all frames in the stack. For performance it is only populated for serialization depths > 1. Tracks the current depth of the stack. If not zero, indicates that the stack is part of a re-entrant continuation of given depth. Cancellation token used by converters performing async serialization (e.g. IAsyncEnumerable) In the case of async serialization, used by resumable converters to signal that the current buffer contents should not be flushed to the underlying stream. Stores a pending task that a resumable converter depends on to continue work. It must be awaited by the root context before serialization is resumed. List of completed IAsyncDisposables that have been scheduled for disposal by converters. The amount of bytes to write before the underlying Stream should be flushed and the current buffer adjusted to remove the processed bytes. Indicates that the state still contains suspended frames waiting re-entry. Internal flag to let us know that we need to read ahead in the inner read loop. Stores a reference id that has been calculated by a polymorphic converter handling a newly encountered boxed struct. Initialize the state without delayed initialization of the JsonTypeInfo. Walks the stack cleaning up any leftover IDisposables in the event of an exception on serialization Walks the stack cleaning up any leftover I(Async)Disposables in the event of an exception on async serialization The enumerator for resumable collections. The enumerator for resumable async disposables. The current stackframe has suspended serialization due to a pending task, stored in the property. The original JsonPropertyInfo that is not changed. It contains all properties. For objects, it is either the actual (real) JsonPropertyInfo or the for the class. For collections, it is the for the class and current element. Used when processing extension data dictionaries. The class (POCO or IEnumerable) that is being populated. Validation state for a class. Property or Element state. The enumerator index for resumable collections. The run-time JsonPropertyInfo that contains the TypeInfo and ConverterBase for polymorphic scenarios. For objects, it is the for the class and current property. For collections, it is the for the class and current element. Return the property that contains the correct polymorphic properties including the ConverterStrategy and ConverterBase. Initializes the state for polymorphic cases and returns the appropriate converter. Converts a span containing a sequence of UTF-16 bytes into UTF-8 bytes. This method will consume as many of the input bytes as possible. On successful exit, the entire input was consumed and encoded successfully. In this case, will be equal to the length of the and will equal the total number of bytes written to the . A span containing a sequence of UTF-16 bytes. A span to write the UTF-8 bytes into. On exit, contains the number of bytes that were consumed from the . On exit, contains the number of bytes written to A value representing the state of the conversion. Provides the ability for the user to define custom behavior when writing JSON using the . By default, the JSON is written without any indentation or extra white space. Also, the will throw an exception if the user attempts to write structurally invalid JSON. The encoder to use when escaping strings, or to use the default encoder. Defines whether the should pretty print the JSON which includes: indenting nested JSON tokens, adding new lines, and adding white space between property names and values. By default, the JSON is written without any extra white space. Defines whether the should skip structural validation and allow the user to write invalid JSON, when set to true. If set to false, any attempts to write invalid JSON will result in a to be thrown. If the JSON being written is known to be correct, then skipping validation (by setting it to true) could improve performance. An example of invalid JSON where the writer will throw (when SkipValidation is set to false) is when you write a value within a JSON object without a property name. Provides a high-performance API for forward-only, non-cached writing of UTF-8 encoded JSON text. It writes the text sequentially with no caching and adheres to the JSON RFC by default (https://tools.ietf.org/html/rfc8259), with the exception of writing comments. When the user attempts to write invalid JSON and validation is enabled, it throws an with a context specific error message. To be able to format the output with indentation and whitespace OR to skip validation, create an instance of and pass that in to the writer. Returns the amount of bytes written by the so far that have not yet been flushed to the output and committed. Returns the amount of bytes committed to the output by the so far. In the case of IBufferwriter, this is how much the IBufferWriter has advanced. In the case of Stream, this is how much data has been written to the stream. Gets the custom behavior when writing JSON using the which indicates whether to format the output while writing and whether to skip structural JSON validation or not. Tracks the recursive depth of the nested objects / arrays within the JSON text written so far. This provides the depth of the current token. Constructs a new instance with a specified . An instance of used as a destination for writing JSON text into. Defines the customized behavior of the By default, the writes JSON minimized (that is, with no extra whitespace) and validates that the JSON being written is structurally valid according to JSON RFC. Thrown when the instance of that is passed in is null. Constructs a new instance with a specified . An instance of used as a destination for writing JSON text into. Defines the customized behavior of the By default, the writes JSON minimized (that is, with no extra whitespace) and validates that the JSON being written is structurally valid according to JSON RFC. Thrown when the instance of that is passed in is null. Resets the internal state so that it can be re-used. The will continue to use the original writer options and the original output as the destination (either or ). The instance of has been disposed. Resets the internal state so that it can be re-used with the new instance of . An instance of used as a destination for writing JSON text into. The will continue to use the original writer options but now write to the passed in as the new destination. Thrown when the instance of that is passed in is null. The instance of has been disposed. Resets the internal state so that it can be re-used with the new instance of . An instance of used as a destination for writing JSON text into. The will continue to use the original writer options but now write to the passed in as the new destination. Thrown when the instance of that is passed in is null. The instance of has been disposed. Commits the JSON text written so far which makes it visible to the output destination. In the case of IBufferWriter, this advances the underlying based on what has been written so far. In the case of Stream, this writes the data to the stream and flushes it. The instance of has been disposed. Commits any left over JSON text that has not yet been flushed and releases all resources used by the current instance. In the case of IBufferWriter, this advances the underlying based on what has been written so far. In the case of Stream, this writes the data to the stream and flushes it. The instance cannot be re-used after disposing. Asynchronously commits any left over JSON text that has not yet been flushed and releases all resources used by the current instance. In the case of IBufferWriter, this advances the underlying based on what has been written so far. In the case of Stream, this writes the data to the stream and flushes it. The instance cannot be re-used after disposing. Asynchronously commits the JSON text written so far which makes it visible to the output destination. In the case of IBufferWriter, this advances the underlying based on what has been written so far. In the case of Stream, this writes the data to the stream and flushes it asynchronously, while monitoring cancellation requests. The instance of has been disposed. Writes the beginning of a JSON array. Thrown when the depth of the JSON has exceeded the maximum depth of 1000 OR if this would result in invalid JSON being written (while validation is enabled). Writes the beginning of a JSON object. Thrown when the depth of the JSON has exceeded the maximum depth of 1000 OR if this would result in invalid JSON being written (while validation is enabled). Writes the beginning of a JSON array with a pre-encoded property name as the key. The JSON-encoded name of the property to write. Thrown when the depth of the JSON has exceeded the maximum depth of 1000 OR if this would result in invalid JSON being written (while validation is enabled). Writes the beginning of a JSON object with a pre-encoded property name as the key. The JSON-encoded name of the property to write. Thrown when the depth of the JSON has exceeded the maximum depth of 1000 OR if this would result in invalid JSON being written (while validation is enabled). Writes the beginning of a JSON array with a property name as the key. The UTF-8 encoded property name of the JSON array to be written. The property name is escaped before writing. Thrown when the specified property name is too large. Thrown when the depth of the JSON has exceeded the maximum depth of 1000 OR if this would result in invalid JSON being written (while validation is enabled). Writes the beginning of a JSON object with a property name as the key. The UTF-8 encoded property name of the JSON object to be written. The property name is escaped before writing. Thrown when the specified property name is too large. Thrown when the depth of the JSON has exceeded the maximum depth of 1000 OR if this would result in invalid JSON being written (while validation is enabled). Writes the beginning of a JSON array with a property name as the key. The name of the property to write. The property name is escaped before writing. Thrown when the specified property name is too large. The parameter is . Thrown when the depth of the JSON has exceeded the maximum depth of 1000 OR if this would result in invalid JSON being written (while validation is enabled). Writes the beginning of a JSON object with a property name as the key. The name of the property to write. The property name is escaped before writing. Thrown when the specified property name is too large. The parameter is . Thrown when the depth of the JSON has exceeded the maximum depth of 1000 OR if this would result in invalid JSON being written (while validation is enabled). Writes the beginning of a JSON array with a property name as the key. The name of the property to write. The property name is escaped before writing. Thrown when the specified property name is too large. Thrown when the depth of the JSON has exceeded the maximum depth of 1000 OR if this would result in invalid JSON being written (while validation is enabled). Writes the beginning of a JSON object with a property name as the key. The name of the property to write. The property name is escaped before writing. Thrown when the specified property name is too large. Thrown when the depth of the JSON has exceeded the maximum depth of 1000 OR if this would result in invalid JSON being written (while validation is enabled). Writes the end of a JSON array. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the end of a JSON object. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the pre-encoded property name and raw bytes value (as a Base64 encoded JSON string) as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. The binary data to write as Base64 encoded text. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the property name and raw bytes value (as a Base64 encoded JSON string) as part of a name/value pair of a JSON object. The name of the property to write. The binary data to write as Base64 encoded text. Thrown when the specified property name is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). The property name is escaped before writing. Writes the property name and raw bytes value (as a Base64 encoded JSON string) as part of a name/value pair of a JSON object. The name of the property to write. The binary data to write as Base64 encoded text. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The property name is escaped before writing. Writes the property name and raw bytes value (as a Base64 encoded JSON string) as part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write. The binary data to write as Base64 encoded text. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The property name is escaped before writing. Writes the pre-encoded property name and value (as a JSON string) as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the round-trippable ('O') , for example: 2017-06-12T05:30:45.7680000. The property name should already be escaped when the instance of was created. Writes the property name and value (as a JSON string) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the round-trippable ('O') , for example: 2017-06-12T05:30:45.7680000. The property name is escaped before writing. Writes the property name and value (as a JSON string) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the round-trippable ('O') , for example: 2017-06-12T05:30:45.7680000. The property name is escaped before writing. Writes the property name and value (as a JSON string) as part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the round-trippable ('O') , for example: 2017-06-12T05:30:45.7680000. The property name is escaped before writing. Writes the pre-encoded property name and value (as a JSON string) as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. The value to to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the round-trippable ('O') , for example: 2017-06-12T05:30:45.7680000-07:00. Writes the property name and value (as a JSON string) as part of a name/value pair of a JSON object. The name of the property to write. The value to to write. Thrown when the specified property name is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the round-trippable ('O') , for example: 2017-06-12T05:30:45.7680000-07:00. The property name is escaped before writing. Writes the property name and value (as a JSON string) as part of a name/value pair of a JSON object. The name of the property to write. The value to to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the round-trippable ('O') , for example: 2017-06-12T05:30:45.7680000-07:00. The property name is escaped before writing. Writes the property name and value (as a JSON string) as part of a name/value pair of a JSON object. The UTF-8 encoded property name of the JSON object to be written. The value to to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the round-trippable ('O') , for example: 2017-06-12T05:30:45.7680000-07:00. The property name is escaped before writing. Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'). Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'). The property name is escaped before writing. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'). The property name is escaped before writing. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'). The property name is escaped before writing. Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'). Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'). The property name is escaped before writing. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'). The property name is escaped before writing. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'). The property name is escaped before writing. Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write.. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'). Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The name of the property to write.. The value to write. Thrown when the specified property name is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'). The property name is escaped before writing. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The name of the property to write.. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'). The property name is escaped before writing. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'). The property name is escaped before writing. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown when does not represent a valid JSON number. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. The property name is escaped before writing. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write.. The value to write. Thrown when the specified property name is too large. Thrown when does not represent a valid JSON number. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. The property name is escaped before writing. Writes the pre-encoded property name and value (as a JSON string) as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'D'), as the form: nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn. Writes the property name and value (as a JSON string) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'D'), as the form: nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn. The property name is escaped before writing. Writes the property name and value (as a JSON string) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'D'), as the form: nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn. The property name is escaped before writing. Writes the property name and value (as a JSON string) as part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'D'), as the form: nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn. The property name is escaped before writing. Writes the pre-encoded property name and the JSON literal "null" as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the property name and the JSON literal "null" as part of a name/value pair of a JSON object. The name of the property to write. Thrown when the specified property name is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). The property name is escaped before writing. Writes the property name and the JSON literal "null" as part of a name/value pair of a JSON object. The name of the property to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The property name is escaped before writing. Writes the property name and the JSON literal "null" as part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The property name is escaped before writing. Writes the pre-encoded property name and value (as a JSON literal "true" or "false") as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the property name and value (as a JSON literal "true" or "false") as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). The property name is escaped before writing. Writes the property name and value (as a JSON literal "true" or "false") as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The property name is escaped before writing. Writes the property name and value (as a JSON literal "true" or "false") as part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The property name is escaped before writing. Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. The property name is escaped before writing. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. The property name is escaped before writing. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. The property name is escaped before writing. Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. The property name is escaped before writing. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. The property name is escaped before writing. Writes the pre-encoded property name (as a JSON string) as the first part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the property name (as a JSON string) as the first part of a name/value pair of a JSON object. The name of the property to write. Thrown when the specified property name is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). The property name is escaped before writing. Writes the property name (as a JSON string) as the first part of a name/value pair of a JSON object. The name of the property to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The property name is escaped before writing. Writes the UTF-8 property name (as a JSON string) as the first part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The property name is escaped before writing. Writes the pre-encoded property name and pre-encoded value (as a JSON string) as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. The JSON-encoded value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the property name and pre-encoded value (as a JSON string) as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. The JSON-encoded value to write. Thrown when the specified property name is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). The property name is escaped before writing. Writes the property name and string text value (as a JSON string) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name or value is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). The property name and value is escaped before writing. If is the JSON null value is written, as if were called. Writes the property name and text value (as a JSON string) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name or value is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The property name and value is escaped before writing. Writes the UTF-8 property name and UTF-8 text value (as a JSON string) as part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write. The UTF-8 encoded value to write. Thrown when the specified property name or value is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The property name and value is escaped before writing. Writes the pre-encoded property name and string text value (as a JSON string) as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. The value to write. Thrown when the specified value is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The value is escaped before writing. If is the JSON null value is written, as if was called. Writes the pre-encoded property name and text value (as a JSON string) as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. The value to write. Thrown when the specified value is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The value is escaped before writing. Writes the property name and text value (as a JSON string) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name or value is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). The property name and value is escaped before writing. Writes the UTF-8 property name and text value (as a JSON string) as part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write. The value to write. Thrown when the specified property name or value is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The property name and value is escaped before writing. Writes the pre-encoded property name and UTF-8 text value (as a JSON string) as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. The UTF-8 encoded value to write. Thrown when the specified value is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The value is escaped before writing. Writes the property name and UTF-8 text value (as a JSON string) as part of a name/value pair of a JSON object. The name of the property to write. The UTF-8 encoded value to write. Thrown when the specified property name or value is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). The property name and value is escaped before writing. Writes the property name and UTF-8 text value (as a JSON string) as part of a name/value pair of a JSON object. The name of the property to write. The UTF-8 encoded value to write. Thrown when the specified property name or value is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The property name and value is escaped before writing. Writes the property name and pre-encoded value (as a JSON string) as part of a name/value pair of a JSON object. The name of the property to write. The JSON-encoded value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The property name is escaped before writing. Writes the property name and string text value (as a JSON string) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name or value is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The property name and value are escaped before writing. If is the JSON null value is written, as if was called. Writes the UTF-8 property name and pre-encoded value (as a JSON string) as part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write. The JSON-encoded value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The property name is escaped before writing. Writes the UTF-8 property name and string text value (as a JSON string) as part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write. The value to write. Thrown when the specified property name or value is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The property name and value are escaped before writing. If is the JSON null value is written, as if was called. Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. The property name is escaped before writing. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. The property name is escaped before writing. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. The property name is escaped before writing. Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. The JSON-encoded name of the property to write. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. The parameter is . Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. The property name is escaped before writing. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. The property name is escaped before writing. Writes the property name and value (as a JSON number) as part of a name/value pair of a JSON object. The UTF-8 encoded name of the property to write. The value to write. Thrown when the specified property name is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. The property name is escaped before writing. Writes the raw bytes value as a Base64 encoded JSON string as an element of a JSON array. The binary data to write as Base64 encoded text. Thrown when the specified value is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The bytes are encoded before writing. Writes the string text value (as a JSON comment). The value to write as a JSON comment within /*..*/. Thrown when the specified value is too large OR if the given string text value contains a comment delimiter (that is, */). The parameter is . The comment value is not escaped before writing. Writes the text value (as a JSON comment). The value to write as a JSON comment within /*..*/. Thrown when the specified value is too large OR if the given text value contains a comment delimiter (that is, */). The comment value is not escaped before writing. Writes the UTF-8 text value (as a JSON comment). The UTF-8 encoded value to be written as a JSON comment within /*..*/. The comment value is not escaped before writing. Thrown when the specified value is too large OR if the given UTF-8 text value contains a comment delimiter (that is, */). Writes the value (as a JSON string) as an element of a JSON array. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the round-trippable ('O') , for example: 2017-06-12T05:30:45.7680000. Writes the value (as a JSON string) as an element of a JSON array. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the round-trippable ('O') , for example: 2017-06-12T05:30:45.7680000-07:00. Writes the value (as a JSON number) as an element of a JSON array. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'). Writes the value (as a JSON number) as an element of a JSON array. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default on .NET Core 3 or higher and 'G17' on any other framework. Writes the value (as a JSON number) as an element of a JSON array. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default on .NET Core 3 or higher and 'G9' on any other framework. Writes the value (as a JSON number) as an element of a JSON array. The value to write. Thrown when does not represent a valid JSON number. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. Writes the value (as a JSON string) as an element of a JSON array. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'D'), as the form: nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn. Writes the JSON literal "null" as an element of a JSON array. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the value (as a JSON literal "true" or "false") as an element of a JSON array. The value write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the input as JSON content. It is expected that the input content is a single complete JSON value. The raw JSON content to write. Whether to validate if the input is an RFC 8259-compliant JSON payload. Thrown if is . Thrown if the length of the input is zero or greater than 715,827,882 ( / 3). Thrown if is , and the input is not a valid, complete, single JSON value according to the JSON RFC (https://tools.ietf.org/html/rfc8259) or the input JSON exceeds a recursive depth of 64. When writing untrused JSON values, do not set to as this can result in invalid JSON being written, and/or the overall payload being written to the writer instance being invalid. When using this method, the input content will be written to the writer destination as-is, unless validation fails (when it is enabled). The value for the writer instance is honored when using this method. The and values for the writer instance are not applied when using this method. Writes the input as JSON content. It is expected that the input content is a single complete JSON value. The raw JSON content to write. Whether to validate if the input is an RFC 8259-compliant JSON payload. Thrown if the length of the input is zero or greater than 715,827,882 ( / 3). Thrown if is , and the input is not a valid, complete, single JSON value according to the JSON RFC (https://tools.ietf.org/html/rfc8259) or the input JSON exceeds a recursive depth of 64. When writing untrused JSON values, do not set to as this can result in invalid JSON being written, and/or the overall payload being written to the writer instance being invalid. When using this method, the input content will be written to the writer destination as-is, unless validation fails (when it is enabled). The value for the writer instance is honored when using this method. The and values for the writer instance are not applied when using this method. Writes the input as JSON content. It is expected that the input content is a single complete JSON value. The raw JSON content to write. Whether to validate if the input is an RFC 8259-compliant JSON payload. Thrown if the length of the input is zero or equal to . Thrown if is , and the input is not a valid, complete, single JSON value according to the JSON RFC (https://tools.ietf.org/html/rfc8259) or the input JSON exceeds a recursive depth of 64. When writing untrused JSON values, do not set to as this can result in invalid JSON being written, and/or the overall payload being written to the writer instance being invalid. When using this method, the input content will be written to the writer destination as-is, unless validation fails (when it is enabled). The value for the writer instance is honored when using this method. The and values for the writer instance are not applied when using this method. Writes the value (as a JSON number) as an element of a JSON array. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. Writes the value (as a JSON number) as an element of a JSON array. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. Writes the pre-encoded text value (as a JSON string) as an element of a JSON array. The JSON-encoded value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the string text value (as a JSON string) as an element of a JSON array. The value to write. Thrown when the specified value is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The value is escaped before writing. If is the JSON null value is written, as if was called. Writes the text value (as a JSON string) as an element of a JSON array. The value to write. Thrown when the specified value is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The value is escaped before writing. Writes the UTF-8 text value (as a JSON string) as an element of a JSON array. The UTF-8 encoded value to be written as a JSON string element of a JSON array. Thrown when the specified value is too large. Thrown if this would result in invalid JSON being written (while validation is enabled). The value is escaped before writing. Writes a number as a JSON string. The string value is not escaped. Writes the value (as a JSON number) as an element of a JSON array. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. Writes the value (as a JSON number) as an element of a JSON array. The value to write. Thrown if this would result in invalid JSON being written (while validation is enabled). Writes the using the default (that is, 'G'), for example: 32767. Represents the validity of a UTF code unit sequence. The sequence is empty. The sequence is well-formed and unambiguously represents a proper Unicode scalar value. [ 20 ] (U+0020 SPACE) is a well-formed UTF-8 sequence. [ C3 A9 ] (U+00E9 LATIN SMALL LETTER E WITH ACUTE) is a well-formed UTF-8 sequence. [ F0 9F 98 80 ] (U+1F600 GRINNING FACE) is a well-formed UTF-8 sequence. [ D83D DE00 ] (U+1F600 GRINNING FACE) is a well-formed UTF-16 sequence. The sequence is not well-formed on its own, but it could appear as a prefix of a longer well-formed sequence. More code units are needed to make a proper determination as to whether this sequence is well-formed. Incomplete sequences can only appear at the end of a string. [ C2 ] is an incomplete UTF-8 sequence if it is followed by nothing. [ F0 9F ] is an incomplete UTF-8 sequence if it is followed by nothing. [ D83D ] is an incomplete UTF-16 sequence if it is followed by nothing. The sequence is never well-formed anywhere, or this sequence can never appear as a prefix of a longer well-formed sequence, or the sequence was improperly terminated by the code unit which appeared immediately after this sequence. [ 80 ] is an invalid UTF-8 sequence (code unit cannot appear at start of sequence). [ FE ] is an invalid UTF-8 sequence (sequence is never well-formed anywhere in UTF-8 string). [ C2 ] is an invalid UTF-8 sequence if it is followed by [ 20 ] (sequence improperly terminated). [ ED A0 ] is an invalid UTF-8 sequence (sequence is never well-formed anywhere in UTF-8 string). [ DE00 ] is an invalid UTF-16 sequence (code unit cannot appear at start of sequence). Represents a heap-based, array-backed output sink into which data can be written. Creates an instance of an , in which data can be written to, with the default initial capacity. Creates an instance of an , in which data can be written to, with an initial capacity specified. The minimum capacity with which to initialize the underlying buffer. Thrown when is not positive (i.e. less than or equal to 0). Returns the data written to the underlying buffer so far, as a . Returns the data written to the underlying buffer so far, as a . Returns the amount of data written to the underlying buffer so far. Returns the total amount of space within the underlying buffer. Returns the amount of space available that can still be written into without forcing the underlying buffer to grow. Clears the data written to the underlying buffer. You must clear the before trying to re-use it. Notifies that amount of data was written to the output / Thrown when is negative. Thrown when attempting to advance past the end of the underlying buffer. You must request a new buffer after calling Advance to continue writing more data and cannot write to a previously acquired buffer. Returns a to write to that is at least the requested length (specified by ). If no is provided (or it's equal to 0), some non-empty buffer is returned. Thrown when is negative. This will never return an empty . There is no guarantee that successive calls will return the same buffer or the same-sized buffer. You must request a new buffer after calling Advance to continue writing more data and cannot write to a previously acquired buffer. Returns a to write to that is at least the requested length (specified by ). If no is provided (or it's equal to 0), some non-empty buffer is returned. Thrown when is negative. This will never return an empty . There is no guarantee that successive calls will return the same buffer or the same-sized buffer. You must request a new buffer after calling Advance to continue writing more data and cannot write to a previously acquired buffer. An that uses reference equality () instead of value equality () when comparing two object instances. The type cannot be instantiated. Instead, use the property to access the singleton instance of this type. Gets the singleton instance. Determines whether two object references refer to the same object instance. The first object to compare. The second object to compare. if both and refer to the same object instance or if both are ; otherwise, . This API is a wrapper around . It is not necessarily equivalent to calling . Returns a hash code for the specified object. The returned hash code is based on the object identity, not on the contents of the object. The object for which to retrieve the hash code. A hash code for the identity of . This API is a wrapper around . It is not necessarily equivalent to calling . Polyfills for . Reserved to be used by the compiler for tracking metadata. This class should not be used by developers in source code. States a dependency that one member has on another. This can be used to inform tooling of a dependency that is otherwise not evident purely from metadata and IL, for example a member relied on via reflection. Initializes a new instance of the class with the specified signature of a member on the same type as the consumer. The signature of the member depended on. Initializes a new instance of the class with the specified signature of a member on a . The signature of the member depended on. The containing . Initializes a new instance of the class with the specified signature of a member on a type in an assembly. The signature of the member depended on. The full name of the type containing the specified member. The assembly name of the type containing the specified member. Initializes a new instance of the class with the specified types of members on a . The types of members depended on. The containing the specified members. Initializes a new instance of the class with the specified types of members on a type in an assembly. The types of members depended on. The full name of the type containing the specified members. The assembly name of the type containing the specified members. Gets the signature of the member depended on. Either must be a valid string or must not equal , but not both. Gets the which specifies the type of members depended on. Either must be a valid string or must not equal , but not both. Gets the containing the specified member. If neither nor are specified, the type of the consumer is assumed. Gets the full name of the type containing the specified member. If neither nor are specified, the type of the consumer is assumed. Gets the assembly name of the specified type. is only valid when is specified. Gets or sets the condition in which the dependency is applicable, e.g. "DEBUG". Indicates that certain members on a specified are accessed dynamically, for example through . This allows tools to understand which members are being accessed during the execution of a program. This attribute is valid on members whose type is or . When this attribute is applied to a location of type , the assumption is that the string represents a fully qualified type name. When this attribute is applied to a class, interface, or struct, the members specified can be accessed dynamically on instances returned from calling on instances of that class, interface, or struct. If the attribute is applied to a method it's treated as a special case and it implies the attribute should be applied to the "this" parameter of the method. As such the attribute should only be used on instance methods of types assignable to System.Type (or string, but no methods will use it there). Initializes a new instance of the class with the specified member types. The types of members dynamically accessed. Gets the which specifies the type of members dynamically accessed. Specifies the types of members that are dynamically accessed. This enumeration has a attribute that allows a bitwise combination of its member values. Specifies no members. Specifies the default, parameterless public constructor. Specifies all public constructors. Specifies all non-public constructors. Specifies all public methods. Specifies all non-public methods. Specifies all public fields. Specifies all non-public fields. Specifies all public nested types. Specifies all non-public nested types. Specifies all public properties. Specifies all non-public properties. Specifies all public events. Specifies all non-public events. Specifies all interfaces implemented by the type. Specifies all members. Indicates that the specified method requires dynamic access to code that is not referenced statically, for example through . This allows tools to understand which methods are unsafe to call when removing unreferenced code from an application. Initializes a new instance of the class with the specified message. A message that contains information about the usage of unreferenced code. Gets a message that contains information about the usage of unreferenced code. Gets or sets an optional URL that contains more information about the method, why it requries unreferenced code, and what options a consumer has to deal with it. Suppresses reporting of a specific rule violation, allowing multiple suppressions on a single code artifact. is different than in that it doesn't have a . So it is always preserved in the compiled assembly. Initializes a new instance of the class, specifying the category of the tool and the identifier for an analysis rule. The category for the attribute. The identifier of the analysis rule the attribute applies to. Gets the category identifying the classification of the attribute. The property describes the tool or tool analysis category for which a message suppression attribute applies. Gets the identifier of the analysis tool rule to be suppressed. Concatenated together, the and properties form a unique check identifier. Gets or sets the scope of the code that is relevant for the attribute. The Scope property is an optional argument that specifies the metadata scope for which the attribute is relevant. Gets or sets a fully qualified path that represents the target of the attribute. The property is an optional argument identifying the analysis target of the attribute. An example value is "System.IO.Stream.ctor():System.Void". Because it is fully qualified, it can be long, particularly for targets such as parameters. The analysis tool user interface should be capable of automatically formatting the parameter. Gets or sets an optional argument expanding on exclusion criteria. The property is an optional argument that specifies additional exclusion where the literal metadata target is not sufficiently precise. For example, the cannot be applied within a method, and it may be desirable to suppress a violation against a statement in the method that will give a rule violation, but not against all statements in the method. Gets or sets the justification for suppressing the code analysis message. Specifies that null is allowed as an input even if the corresponding type disallows it. Specifies that null is disallowed as an input even if the corresponding type allows it. Specifies that an output may be null even if the corresponding type disallows it. Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns. Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. Initializes the attribute with the specified return value condition. The return value condition. If the method returns this value, the associated parameter may be null. Gets the return value condition. Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. Initializes the attribute with the specified return value condition. The return value condition. If the method returns this value, the associated parameter will not be null. Gets the return value condition. Specifies that the output will be non-null if the named parameter is non-null. Initializes the attribute with the associated parameter name. The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. Gets the associated parameter name. Applied to a method that will never return under any circumstance. Specifies that the method will not return if the associated Boolean parameter is passed the specified value. Initializes the attribute with the specified parameter value. The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to the associated parameter matches this value. Gets the condition parameter value. Specifies that the method or property will ensure that the listed field and property members have not-null values. Initializes the attribute with a field or property member. The field or property member that is promised to be not-null. Initializes the attribute with the list of field and property members. The list of field and property members that are promised to be not-null. Gets field or property member names. Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition. Initializes the attribute with the specified return value condition and a field or property member. The return value condition. If the method returns this value, the associated parameter will not be null. The field or property member that is promised to be not-null. Initializes the attribute with the specified return value condition and list of field and property members. The return value condition. If the method returns this value, the associated parameter will not be null. The list of field and property members that are promised to be not-null. Gets the return value condition. Gets field or property member names. The maximum configured depth of {0} has been exceeded. Cannot read next JSON array. The JSON writer needs to be flushed before getting the current state. There are {0} bytes that have not been committed to the output. Cannot read incomplete UTF-16 JSON text as string with missing low surrogate. Cannot read invalid UTF-16 JSON text as string. Invalid surrogate value: '{0}'. Cannot write the start of an object/array after a single JSON value or outside of an existing closed object/array. Current token type is '{0}'. Cannot write the start of an object or array without a property name. Current token type is '{0}'. Cannot transcode invalid UTF-8 JSON text to UTF-16 string. Cannot decode JSON text that is not encoded as valid Base64 to bytes. Cannot transcode invalid UTF-16 string to UTF-8 JSON text. Cannot encode invalid UTF-16 text as JSON. Invalid surrogate value: '{0}'. Cannot encode invalid UTF-8 text as JSON. Invalid input: '{0}'. Cannot write a JSON property within an array or as the first JSON token. Current token type is '{0}'. Cannot write a JSON property name following another property name. A JSON value is missing. Cannot write a JSON value after a single JSON value or outside of an existing closed object/array. Current token type is '{0}'. Cannot write a JSON value within an object without a property name. Current token type is '{0}'. CurrentDepth ({0}) is equal to or larger than the maximum allowed depth of {1}. Cannot write the next JSON object or array. Writing an empty JSON payload (excluding comments) is invalid. Expected end of comment, but instead reached end of data. Expected end of string, but instead reached end of data. '{0}' is invalid after a single JSON value. Expected end of data. '{0}' is an invalid end of a number. Expected a delimiter. '{0}' is an invalid JSON literal. Expected the literal 'false'. The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. The input does not contain any complete JSON tokens. Expected the input to have at least one valid, complete, JSON token. '{0}' is an invalid end of a number. Expected 'E' or 'e'. '{0}' is an invalid JSON literal. Expected the literal 'null'. '{0}' is invalid after a property name. Expected a ':'. '{0}' is an invalid start of a property name. Expected a '"'. Expected start of a property name or value, but instead reached end of data. '{0}' is an invalid start of a value. '{0}' is an invalid JSON literal. Expected the literal 'true'. Expected a value, but instead reached end of data. The 'IBufferWriter' could not provide an output buffer that is large enough to continue writing. '{0}' is invalid after a value. Expected either ',', '}}', or ']'. Cannot get the value of a token type '{0}' as a {1}. '{0}' is an invalid escapable character within a JSON string. The string should be correctly escaped. '{0}' is invalid within a JSON string. The string should be correctly escaped. '{0}' is an invalid token type for the end of the JSON payload. Expected either 'EndArray' or 'EndObject'. '{0}' is not a hex digit following '\u' within a JSON string. The string should be correctly escaped. Comments cannot be stored in a JsonDocument, only the Skip and Disallow comment handling modes are supported. The requested operation requires an element of type '{0}', but the target element has type '{1}'. Max depth must be positive. The JsonCommentHandling enum must be set to one of the supported values. '{0}' is invalid without a matching open. '{0}' is invalid following a property name. The maximum configured depth of {0} has been exceeded. Cannot read next JSON object. The JSON property name of length {0} is too large and not supported. The JSON value is either too large or too small for a Decimal. Either the JSON value is not in a supported format, or is out of bounds for a Double. Either the JSON value is not in a supported format, or is out of bounds for an Int32. Either the JSON value is not in a supported format, or is out of bounds for an Int64. Either the JSON value is not in a supported format, or is out of bounds for a Single. Either the JSON value is not in a supported format, or is out of bounds for a UInt32. Either the JSON value is not in a supported format, or is out of bounds for a UInt64. '{0}' is invalid within a number, immediately after a decimal point ('.'). Expected a digit ('0'-'9'). '{0}' is invalid within a number, immediately after a sign character ('+' or '-'). Expected a digit ('0'-'9'). Expected a digit ('0'-'9'), but instead reached end of data. .NET number values such as positive and negative infinity cannot be written as valid JSON. The JSON value of length {0} is too large and not supported. Expected depth to be zero at the end of the JSON payload. There is an open JSON object or array that should be closed. The JSON value could not be converted to {0}. The specified type {0} must derive from the specific value's type {1}. The value must be greater than zero. Cannot advance past the end of the buffer, which has a size of {0}. Cannot compare the value of a token type '{0}' to text. The JSON value is not in a supported DateTime format. The JSON value is not in a supported DateTimeOffset format. The JSON value is not in a supported TimeSpan format. The JSON value is not in a supported Guid format. '{0}' is an invalid start of a property name or value, after a comment. The JSON array contains a trailing comma at the end which is not supported in this mode. Change the reader options. The JSON object contains a trailing comma at the end which is not supported in this mode. Change the reader options. Serializer options cannot be changed once serialization or deserialization has occurred. Stream is not writable. Cannot write a comment value which contains the end of comment delimiter. The JSON property name for '{0}.{1}' collides with another property. The JSON property name for '{0}.{1}' cannot be null. The data extension property '{0}.{1}' is invalid. It must implement 'IDictionary<string, JsonElement>' or 'IDictionary<string, object>', or be 'JsonObject'. The type '{0}' cannot have more than one member that has the attribute '{1}'. The type '{0}' is not supported. The type '{0}' can only be serialized using async serialization methods. '{0}' is invalid after '/' at the beginning of the comment. Expected either '/' or '*'. Unexpected end of data while reading a comment. Cannot skip tokens on partial JSON. Either get the whole payload and create a Utf8JsonReader instance where isFinalBlock is true or call TrySkip. There is not enough data to read through the entire JSON array or object. Found invalid line or paragraph separator character while reading a comment. Comments cannot be stored when deserializing objects, only the Skip and Disallow comment handling modes are supported. Deserialization of types without a parameterless constructor, a singular parameterized constructor, or a parameterized constructor annotated with '{0}' is not supported. Type '{1}'. Deserialization of interface types is not supported. Type '{0}'. The converter specified on '{0}' is not compatible with the type '{1}'. The converter specified on '{0}' does not derive from JsonConverter or have a public parameterless constructor. The converter '{0}' read too much or not enough. The converter '{0}' is not compatible with the type '{1}'. The converter '{0}' wrote too much or not enough. The naming policy '{0}' cannot return null. The attribute '{0}' cannot exist more than once on '{1}'. The object or value could not be serialized. Either the JSON value is not in a supported format, or is out of bounds for an unsigned byte. Either the JSON value is not in a supported format, or is out of bounds for an Int16. Either the JSON value is not in a supported format, or is out of bounds for a signed byte. Either the JSON value is not in a supported format, or is out of bounds for a UInt16. A possible object cycle was detected. This can either be due to a cycle or if the object depth is larger than the maximum allowed depth of {0}. Consider using ReferenceHandler.Preserve on JsonSerializerOptions to support cycles. Invalid leading zero before '{0}'. Cannot parse a JSON object containing metadata properties like '$id' into an array or immutable collection type. Type '{0}'. The value of the '$id' metadata property '{0}' conflicts with an existing identifier. The metadata property '$id' must be the first property in the JSON object. Invalid reference to value type '{0}'. The '$values' metadata property must be a JSON array. Current token type is '{0}'. Deserialization failed for one of these reasons: 1. {0} 2. {1} Invalid property '{0}' found within a JSON object that must only contain metadata properties and the nested JSON array to be preserved. One or more metadata properties, such as '$id' and '$values', were not found within a JSON object that must only contain metadata properties and the nested JSON array to be preserved. A JSON object that contains a '$ref' metadata property must not contain any other properties. Reference '{0}' not found. The '$id' and '$ref' metadata properties must be JSON strings. Current token type is '{0}'. Properties that start with '$' are not allowed on preserve mode, either escape the character or turn off preserve references by setting ReferenceHandler to null. Members '{0}' and '{1}' on type '{2}' cannot both bind with parameter '{3}' in the deserialization constructor. Each parameter in the deserialization constructor on type '{0}' must bind to an object property or field on deserialization. Each parameter name must match with a property or field on the object. The match can be case-insensitive. The deserialization constructor on type '{0}' may not have more than 64 parameters for deserialization. Reference metadata is not honored when deserializing types using parameterized constructors. See type '{0}'. The converter '{0}' cannot return a null value. The unsupported member type is located on type '{0}'. The extension data property '{0}' on type '{1}' cannot bind with a parameter in the deserialization constructor. Cannot allocate a buffer of size {0}. The type '{0}' is invalid for serialization or deserialization because it is a pointer type, is a ref struct, or contains generic parameters that have not been replaced by specific types. Serialization and deserialization of '{0}' instances are not supported. The non-public property '{0}' on type '{1}' is annotated with 'JsonIncludeAttribute' which is invalid. The type '{0}' of property '{1}' on type '{2}' is invalid for serialization or deserialization because it is a pointer type, is a ref struct, or contains generic parameters that have not been replaced by specific types. The collection type '{0}' is abstract, an interface, or is read only, and could not be instantiated and populated. 'IgnoreNullValues' and 'DefaultIgnoreCondition' cannot both be set to non-default values. The value cannot be 'JsonIgnoreCondition.Always'. The JSON value is not in a supported Boolean format. The type '{0}' is not a supported dictionary key using converter of type '{1}'. The ignore condition 'JsonIgnoreCondition.WhenWritingNull' is not valid on value-type member '{0}' on type '{1}'. Consider using 'JsonIgnoreCondition.WhenWritingDefault'. 'JsonNumberHandlingAttribute' is only valid on a number or a collection of numbers when applied to a property or field. See member '{0}' on type '{1}'. The converter '{0}' handles type '{1}' but is being asked to convert type '{2}'. Either create a separate converter for type '{2}' or change the converter's 'CanConvert' method to only return 'true' for a single type. The object with reference id '{0}' of type '{1}' cannot be assigned to the type '{2}'. Unable to cast object of type '{0}' to type '{1}'. Unable to assign 'null' to the property or field of type '{0}'. The converter '{0}' cannot return an instance of JsonConverterFactory. The result type '{0}' of the dynamic binding produced by the object with type '{1}' for the binder '{2}' is not compatible with the result type '{3}' expected by the call site. The element must be of type '{0}' The element cannot be an object or array. The node already has a parent. A node cycle was detected. A value of type '{0}' cannot be converted to a '{1}'. An element of type '{0}' cannot be converted to a '{1}'. A JsonNode cannot be used as a value. The node must be of type '{0}'. An item with the same key has already been added. Key: {0} A 'JsonSerializerOptions' instance associated with a 'JsonSerializerContext' instance cannot be mutated once the context has been instantiated. "The specified 'JsonSerializerOptions' instance is already bound with a 'JsonSerializerContext' instance." The value must represent an object type. The generic type of the converter for property '{0}.{1}' must match with the specified converter type '{2}'. The converter must not be 'null'. Built-in type converters have not been initialized. There is no converter available for type '{0}'. To root all built-in converters, use a 'JsonSerializerOptions'-based method of the 'JsonSerializer'. Metadata for type '{0}' was not provided to the serializer. The serializer method used does not support reflection-based creation of serialization-related type metadata. If using source generation, ensure that all root types passed to the serializer have b ... Collection is read-only. Number was less than 0. Destination array was not long enough. A custom converter for JsonObject is not allowed on an extension property. Invalid configuration provided for 'propInitFunc', 'ctorParamInitFunc' and 'serializeFunc'. 'JsonSerializerContext' '{0}' did not provide property metadata for type '{1}'. To specify a serialization implementation for type '{0}'', context '{0}' must specify default options. A 'field' member cannot be 'virtual'. See arguments for the '{0}' and '{1}' parameters. Could not locate required member '{0}' from FSharp.Core. This might happen because your application has enabled member-level trimming. F# discriminated union serialization is not supported. Consider authoring a custom converter for the type. 'JsonSerializerContext' '{0}' did not provide constructor parameter metadata for type '{1}'.