C# 返回简单JSON结果的WCF服务

C# 返回简单JSON结果的WCF服务,c#,json,wcf,service,C#,Json,Wcf,Service,我试图找出返回以下JSON字符串的最简单方法: {"0":"bar1","1":"bar2","2":"bar3"} 我完全能够将类似以下类对象的内容返回到JSON: Person person = new Person() { foo1 = "bar1", foo2 = "bar2", foo3 = "bar3" }; {"foo1":"bar1","foo2":"bar2","foo3":"bar3"} 我只是想知道如何将键作为整数字符串返回?您可以使用[Dat

我试图找出返回以下JSON字符串的最简单方法:

{"0":"bar1","1":"bar2","2":"bar3"}
我完全能够将类似以下类对象的内容返回到JSON:

Person person = new Person()
{
    foo1 = "bar1",
    foo2 = "bar2",
    foo3 = "bar3"
};

{"foo1":"bar1","foo2":"bar2","foo3":"bar3"}

我只是想知道如何将键作为整数字符串返回?

您可以使用
[DataMember]
属性(使用
Name
属性)更改序列化JSON中属性的名称,如下所示

public class StackOverflow_18081074
{
    [DataContract]
    public class Person
    {
        [DataMember(Name = "0")]
        public string Foo1 { get; set; }
        [DataMember(Name = "1")]
        public string Foo2 { get; set; }
        [DataMember(Name = "2")]
        public string Foo3 { get; set; }
    }
    [ServiceContract]
    public class Service
    {
        [WebGet]
        public Person Get()
        {
            return new Person
            {
                Foo1 = "bar1",
                Foo2 = "bar2",
                Foo3 = "bar3"
            };
        }
    }
    public static void Test()
    {
        string baseAddress = "http://" + Environment.MachineName + ":8000/Service";
        WebServiceHost host = new WebServiceHost(typeof(Service), new Uri(baseAddress));
        host.Open();
        Console.WriteLine("Host opened");

        WebClient c = new WebClient();
        Console.WriteLine(c.DownloadString(baseAddress + "/Get"));

        Console.Write("Press ENTER to close the host");
        Console.ReadLine();
        host.Close();
    }
}

我不应该问这样的问题,当我半睡半醒,一只眼睛只能工作的时候。我知道这一点。非常感谢。