使用C#和Newtonsoft将List <string>转换为JSON

chi*_*oot 1 c# json json.net

我有一个列表,我想使用C#和Newtonsoft转换为JSON。

标签

[0]: "foo"
[1]: "bar"
Run Code Online (Sandbox Code Playgroud)

输出为:-

{"tags": ["foo", "bar"]}
Run Code Online (Sandbox Code Playgroud)

有人能指出我正确的方向吗?我可以将List转换为JSON,但是它们的关键是我需要JSON中的“标签”部分,而我不能通过convert使用获得JsonConvert.SerializeObject(tags)

mjw*_*lls 7

以下代码将列表包装为匿名类型,从而生成您要查找的内容。

using System;
using System.Collections.Generic;
using Newtonsoft.Json;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            var list = new List<string> {"foo", "bar"};

            var tags = new {tags = list};

            Console.WriteLine(JsonConvert.SerializeObject(tags));

            Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Jam*_*iec 5

可以说,最简单的方法就是用你的List<string>属性编写一个包装对象

public class Wrapper
{
    [JsonProperty("tags")]
    public List<string> Tags {get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后当序列化时,这会给出您期望的输出。

var obj = new Wrapper(){ Tags = new List<string>(){ "foo", "bar"} };
var json = JsonConvert.SerializeObject(obj);
Console.WriteLine(json);
// outputs: {"tags":["foo","bar"]}
Run Code Online (Sandbox Code Playgroud)

实例: http: //rextester.com/FTFIBT36362