为.net中的var对象命名

时间:2015-03-28 14:45:27

标签: c# .net json linq var

只是想知道我正在使用web方法将一些json数据返回到Web表单。无论如何,我不想让json中的整个班级只有两列。所以我用linq来获取这里的列就是一个例子。

 IEnumerable<Person> model = new List<Person>
        {
            new Person { id = 1, Name = "Bryan", Phone = "218-0211", Email = "bryan@mail.mil" },
            new Person { id = 2, Name = "Joe", Phone = "248-0241", Email = "joe@mail.mil" },
            new Person { id = 3, Name = "Fred", Phone = "354-0441", Email = "fred@mail.mil" },
            new Person { id = 4, Name = "Mary", Phone = "344-3451", Email = "mary@mail.mil" },
            new Person { id = 5, Name = "Jill", Phone = "127-3451", Email = "jill@mail.mil" }

        };
        var mysubset = from a in model select new { a. Name, a.Email };

不幸的是,当我然后序列化我的结果并将其发回时我丢失了列名。所以data.name不起作用,所以我想知道我可以为var类型命名吗?例如,有没有办法做到这一点?

var mysubset = from a in model select new { a. Name, a.Email };
        string myname as string;
        foreach (var item in mysubset)
        {
            myname = subset.Name;
        }

好的,这是实际代码抱歉它在vb中,但那是我继承的项目

Dim mycollection = From a in cmpnyList select {a.CmpnyName, a.ShipFrom}
return jsSerialize.Serialize(mycollection)

从那里返回的json是

[{"Company A","New York"},{"Company B", "Harrisburg"}]

所以我试图找回像

这样的东西
 [{"CmpnyName":"Company A", "ShipFrom": "New York"},
    {"CmpnyName": "Company B", "ShipFrom": "Harrisburg}]

1 个答案:

答案 0 :(得分:0)

我相信你正在使用json.net,使用jobject(newtonsoft.json.linq)就可以得到这样的答案

JObject o = new JObject(
            new JProperty("PersonssList",
            new JArray(
                from p in model
                select new JObject(
                    new JProperty("PersonName", p.Name),
                    new JProperty("Email", p.Email)))));

结果将是这个json

  {
"PersonssList": [
    {
      "PersonName": "Bryan",
      "Email": "bryan@mail.mil"
    },
    {
      "PersonName": "Joe",
      "Email": "joe@mail.mil"
    },
    {
      "PersonName": "Fred",
      "Email": "fred@mail.mil"
    },
    {
      "PersonName": "Mary",
      "Email": "mary@mail.mil"
    },
    {
      "PersonName": "Jill",
      "Email": "jill@mail.mil"
    }
  ]

相关问题