Start Debugging
2023-10-23 Обновлено 2023-11-01 dotnetdotnet-8 Edit on GitHub

JsonNode обновления API в .NET 8

Разбираем новые API в .NET 8 для JsonNode и JsonArray: GetValueKind, GetPropertyName, GetElementIndex, ReplaceWith и ParseAsync.

В рамках .NET 8 у JsonNode и JsonArray появилось несколько новых пунктов в API. О deep copy и deep equality мы уже рассказывали в предыдущей статье, но это далеко не всё.

GetValueKind

public JsonValueKind GetValueKind(JsonSerializerOptions options = null);

Возвращает JsonValueKind для текущего экземпляра.

GetPropertyName

public string GetPropertyName();

Возвращает имя свойства текущего узла в родительском объекте. Бросает InvalidOperationException, если родитель не является JsonObject.

GetElementIndex

public int GetElementIndex();

Возвращает индекс текущего узла в родительском JsonArray. Бросает InvalidOperationException, если родитель не является JsonArray.

ReplaceWith<T>

public void ReplaceWith<T>(T value);

Заменяет указанный узел переданным значением.

ParseAsync

public static Task<JsonNode?> ParseAsync(
        Stream utf8Json,
        JsonNodeOptions? nodeOptions = null,
        JsonDocumentOptions documentOptions = default,
        CancellationToken cancellationToken = default);

Асинхронно разбирает поток данных в кодировке UTF-8, представляющий одно JSON-значение, в JsonNode.

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Назад