将对象列表转换为json数组

我有一个包含电子邮件地址和状态数据成员的类对象列表。 我试图将这些转换为json,确保在数组上有“操作”字样。

这是我的class级:

class MyClass { public string email {get; set; } public string status { get; set; } } 

这是我目前的代码(不是构建):

 List data = new List(); data = MagicallyGetData(); string json = new { operations = new { JsonConvert.SerializeObject(data.Select(s => new { email_address = s.email, status = s.status })) } }; 

这是我想要获得的JSON:

 { "operations": [ { "email_address": "email1@email.com", "status": "good2go" }, { "email_address": "email2@email.com", "status": "good2go" },... ] } 

EDIT1我应该提一下,我得到的数据来自数据库。 我从数据库中反序列化JSON并以几种不同的方式使用数据,因此我无法更改类的成员名称。

我相信这会给你你想要的东西。 如果可能,您将不得不更改您的类属性名称 –

  class MyClass { public string email_address { get; set; } public string status { get; set; } } List data = new List() { new MyClass() { email_address = "email1@email.com", status = "good2go" }, new MyClass() { email_address = "email2@email.com", status = "good2go" } }; var json = JsonConvert.SerializeObject(new { operations = data }); 

您可以尝试这样的事情:

 using System.Web.Script.Serialization; var jsonSerialiser = new JavaScriptSerializer(); var json = jsonSerialiser.Serialize(data); 
 class MyClass { public string email_address { get; set; } public string status { get; set; } } List data = new List() { new MyClass() { email_address = "email1@email.com", status = "good2go" }, new MyClass() { email_address = "email2@email.com", status = "good2go" } }; //Serialize var json = JsonConvert.SerializeObject(data); //Deserialize var jsonToList = JsonConvert.DeserializeObject>(json); 

你可以简单地做到这一点。

 var lstroom = _roomrep.GetAllRoomList().ToList(); return Json(new { data = lstroom }, JsonRequestBehavior.AllowGet);