How to create array of key/value pair in c#?

19,138

Your outer JSON container is an array, so you need to return some sort of non-dictionary collection such as a List<Dictionary<string, string>> for your root object, like so:

var opts = new Dictionary<string, string>();
opts.Add("one", "Un");
opts.Add("two", "Deux");
opts.Add("three", "Trois");

var list = opts.Select(p => new Dictionary<string, string>() { {p.Key, p.Value }});

Sample fiddle.

Share:
19,138
Jaylen
Author by

Jaylen

Updated on June 14, 2022

Comments

  • Jaylen
    Jaylen almost 2 years

    I have an application that is written on top of ASP.NET MVC. In one of my controllers, I need to create an object in C# so when it is converted to JSON using JsonConvert.SerializeObject() the results looks like this

    [
      {'one': 'Un'},
      {'two': 'Deux'},
      {'three': 'Trois'}
    ]
    

    I tried to use Dictionary<string, string> like this

    var opts = new Dictionary<string, string>();
    opts.Add("one", "Un");
    opts.Add("two", "Deux");
    opts.Add("three", "Trois");
    
    var json = JsonConvert.SerializeObject(opts);
    

    However, the above creates the following json

    {
      'one': 'Un',
      'two': 'Deux',
      'three': 'Trois'
    }
    

    How can I create the object in a way so that JsonConvert.SerializeObject() generate the desired output?