C# ASP MVC如何使用变量名返回json

C# ASP MVC如何使用变量名返回json,c#,json,C#,Json,我有这个用户类 public class User { public string name { get; set; } public string phone { get; set; } public string address { get; set; } } var users = new List<User>(){ new User(){ name = "Chriss", phone = "45096820",

我有这个用户类

public class User
{
    public string name { get; set; }
    public string phone { get; set; }
    public string address { get; set; }
}

var users = new List<User>(){
    new User(){
        name = "Chriss",
        phone = "45096820",
        address = "xxx, street."
    },
    ...
};
返回的json格式如下所示

"Users"  :
    {
    "Chris" :
        {
            "phone" : "45096820",
            "address" : "xxx, street."
        },
    "Jason" :
        {
            "phone" : "406980968",
            "address" : "xxx, street"
        }
    }   
通常,命名最外层JSON变量(可以说是根属性)的“诀窍”是创建一个具有该属性的匿名对象:

return Json(new { Users = users }, JsonRequestBehavior.AllowGet);
将返回具有一个数组属性(
用户
)的对象

如果您需要一个JSON对象,该对象具有一个强>对象< /强>属性(<代码>用户< /代码>),该属性本身具有两个属性(<代码>克里斯< /代码>和<代码>杰森<代码> >),请考虑使用<代码>词典<代码>(密钥是用户名称),而不是<代码>列表 >:

var users=新字典
{
{“Chris”,新用户{phone=“45096820”,address=“xxx,street.”,
{“Jason”,新用户{phone=“406980968”,address=“xxx,street.”
};
Json.NET将按照所需的输出Json格式序列化字典。

通常,命名最外层Json变量(可以说是根属性)的“诀窍”是创建一个具有该属性的匿名对象:

return Json(new { Users = users }, JsonRequestBehavior.AllowGet);
将返回具有一个数组属性(
用户
)的对象

如果您需要一个JSON对象,该对象具有一个强>对象< /强>属性(<代码>用户< /代码>),该属性本身具有两个属性(<代码>克里斯< /代码>和<代码>杰森<代码> >),请考虑使用<代码>词典<代码>(密钥是用户名称),而不是<代码>列表 >:

var users=新字典
{
{“Chris”,新用户{phone=“45096820”,address=“xxx,street.”,
{“Jason”,新用户{phone=“406980968”,address=“xxx,street.”
};

Json.NET将按照所需的输出Json格式序列化字典。

为了获得与所需完全相同的Json结构,您必须修改用户类,使其如下所示:

public class User
{
    public string phone { get; set; }
    public string address { get; set; }
}
(如果没有名称,名称将成为词典中的关键字)

并使用字典:

Dictionary<string, User> dictionary = new Dictionary<string, Controllers.User>();
        dictionary.Add("Chris", new User() { phone = "45096820", address = "xxx, street" });
        dictionary.Add("Jason", new User() { phone = "406980968", address = "xxx, street" });
        return Json(new { Users = dictionary }, JsonRequestBehavior.AllowGet);
Dictionary Dictionary=newdictionary();
dictionary.Add(“Chris”,新用户(){phone=“45096820”,address=“xxx,street”});
添加(“Jason”,新用户(){phone=“406980968”,address=“xxx,street”});
返回Json(new{Users=dictionary},JsonRequestBehavior.AllowGet);

为了获得与您想要的完全相同的Json结构,您必须修改您的用户类,使其看起来像:

public class User
{
    public string phone { get; set; }
    public string address { get; set; }
}
(如果没有名称,名称将成为词典中的关键字)

并使用字典:

Dictionary<string, User> dictionary = new Dictionary<string, Controllers.User>();
        dictionary.Add("Chris", new User() { phone = "45096820", address = "xxx, street" });
        dictionary.Add("Jason", new User() { phone = "406980968", address = "xxx, street" });
        return Json(new { Users = dictionary }, JsonRequestBehavior.AllowGet);
Dictionary Dictionary=newdictionary();
dictionary.Add(“Chris”,新用户(){phone=“45096820”,address=“xxx,street”});
添加(“Jason”,新用户(){phone=“406980968”,address=“xxx,street”});
返回Json(new{Users=dictionary},JsonRequestBehavior.AllowGet);

注意到名字了吗?名称标题不在结果中。@JeeShenLee现在您键入评论的速度比我更新答案的速度快。。)注意到名字了吗?名称标题不在结果中。@JeeShenLee现在您键入评论的速度比我更新答案的速度快。。)如果您有两个同名用户会发生什么情况?请注意,您显示的不是有效的JSON…如果您有两个同名用户会发生什么情况?请注意,您显示的不是有效的JSON。。。