You could use Newtonsoft.Json to deserialize your JSON into a dictionary.
Firstly, make an Item class(or whatever other name of class you choose).
public class Item
{
[JsonProperty("Id")]
public int Id { get; set; }
[JsonProperty("description")]
public string Description { get; set; }
}
Secondly, deserialize your json using JsonConvert.DeserializeObject()and assign the key as Description and the value as Id using Enumerable.ToDictionary(). Additionally, since your data is a JSON array, you should deserialize to a IEnumerable<Item> to get the correct results.
var json = "[{ \"Id\":183,\"description\":\"blahblahblah\"},{ \"Id\":184,\"description\":\"blehblehbleh\"},{ \"Id\":1000,\"description\":\"and so on...\"}]";
var deserializedJsonDict = JsonConvert
.DeserializeObject<IEnumerable<Item>>(json)
.ToDictionary(entry => entry.Description, entry => entry.Id);
foreach (var entry in deserializedJsonDict)
{
Console.WriteLine($"Key={entry.Key}, Value={entry.Value}");
}
Output keys and values of dictionary:
Key=blahblahblah, Value=183
Key=blehblehbleh, Value=184
Key=and so on..., Value=1000