将对象列表转换为json数组

时间:2016-02-26 14:31:24

标签: c# json serialization

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

这是我的班级:

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

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

List<MyClass> data = new List<MyClass>();
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并以几种不同的方式使用数据,因此我无法更改我的类的成员名称。

4 个答案:

答案 0 :(得分:11)

我相信这会给你你想要的东西。如果可能,您必须更改类属性名称 -

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

        List<MyClass> data = new List<MyClass>() { 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
        });

答案 1 :(得分:0)

你可以尝试这样的事情:

using System.Web.Script.Serialization;
var jsonSerialiser = new JavaScriptSerializer();
var json = jsonSerialiser.Serialize(data);

答案 2 :(得分:0)

.select

答案 3 :(得分:0)

这是简单的代码

<块引用>

JArray.FromObject(objList);