如何转换键值对json字符串响应中的字符串列表?

Lea*_*sed 2 c#

下面是我的字符串列表:

List<string> mylist = new List<string>(new string[] { "element1", "element2", "element3" });
Run Code Online (Sandbox Code Playgroud)

现在我想以下面的输出形式将上面的列表返回到Web服务:

{
 "element1" : "",
 "element2" : "",
 "element3" : "",
}
Run Code Online (Sandbox Code Playgroud)

我想在我的网站上显示如下输出:

{
 "element1" : "",
 "element2" : "",
 "element3" : "",
}
Run Code Online (Sandbox Code Playgroud)

这就是我现在正在做的事情:

 string output = "{" + Environment.NewLine;
            foreach (var item in myList)
            {
                output += $"\"{item}\" : \"\"," + Environment.NewLine;
            }
            output = output.Remove(output.Length - 1) + "}";
Run Code Online (Sandbox Code Playgroud)

但是当我有40-50个记录时,我的循环将运行40-50次,我试图避免.

我甚至试图用这个:

 string output = JsonConvert.SerializeObject(myList); 
Run Code Online (Sandbox Code Playgroud)

但上面没有给出我想要的确切输出格式.

任何人都可以建议我做任何更好的方法,这将避免forloop和减少代码产生预期的输出?

mac*_*ura 5

这应该做你想要的:

string output = JsonConvert.SerializeObject(
                    mylist.ToDictionary(key => key, v => string.Empty));
Run Code Online (Sandbox Code Playgroud)

使用ToDictionary()我们从您的列表中创建Dictionary<T1, T2>(在您的情况下Dictionary<string, string>).我们将Key等于列表中的项目,并且Value只是一个空字符串.

在这里小提琴

编辑 如果您想要缩进格式,请将第二个参数传递给SerializeObject:

string output = JsonConvert.SerializeObject(
                    mylist.ToDictionary(key => key, v => string.Empty)
                    Formatting.Indented);
Run Code Online (Sandbox Code Playgroud)