It was that simple: Zip + ToDictionary before serialization.
using System.Text.Json;
using System.Text.Json.Serialization;
var array1 = new string[]{ "a", "b", "c" } ;
var array2 = new int[] { 1, 2, 3 };
var dict = array1
.Zip(array2, (a1,a2)=> (key:a1, value:a2))
.ToDictionary(k => k.key, v => v.value);
Console.WriteLine(JsonSerializer.Serialize(dict));
Zip
takes two collections of the same size and creates a new one based on the result of a merge function (here, I used it to create tuples)
ToDictionary
creates an enumerable to a dictionary structure.
Outputs:
{"a":1,"b":2,"c":3}
One note about this answer though: If you have two or more identical items in the first collection, this WILL throw an exception.