
System.Text.Json is currently the most modern way to handle Json files efficiently. Efficiency here also means that memory sparing files are read in.
A very efficient way to handle Json files is not to load them into a string first, but to implement the deserialization via streams. This keeps the application more scalable and performant.
System.Text.Json has this built in, so such an implementation can be done within a few lines.
1// Create Client
2BlobContainerClient container = new(_options.ConnectionString, _options.ContainerName);
3BlobClient blobClient = container.GetBlobClient(_options.BlobPath);
4
5// check if blob exists
6Azure.Response<bool> exists = await blobClient.ExistsAsync(ct).ConfigureAwait(false);
7if (exists.Value is false)
8{
9 return null;
10}
11
12// Get Blob Stream
13BlobOpenReadOptions readOptions = new(allowModifications: false);
14using Stream stream = await blobClient.OpenReadAsync(readOptions, ct).ConfigureAwait(false);
15
16// read json
17JsonSerializerOptions jsonOpions = new();
18
19MyDeserializationTargetClass? myDeserializedObject = await JsonSerializer
20 .DeserializeAsync<MyDeserializationTargetClass>(stream, jsonOpions, ct)
21 .ConfigureAwait(false);
Related articles

Mar 05, 2023 - 1 min read
Microsoft has moved Teams backend service to .NET 6 - the performance results
September last year, Microsoft announced that a large number of backend services would be migrated to .NET 6. This, they said, was an …

Feb 28, 2023 - 2 min read
A struct with an interface is inefficient in .NET
Structs have their advantages in .NET: they are especially efficient in the runtime if used correctly. But if you use structs with an …

Feb 23, 2023 - 2 min read
Difference of is null vs equals null and why is null is recommended
Both C# is null and == null are used to check if a variable or object is null, but they work slightly differently.
Let's Work Together
Looking for an experienced Platform Architect or Engineer for your next project? Whether it's cloud migration, platform modernization or building new solutions from scratch - I'm here to help you succeed.
