将对象列表转换为json数组

csga3l58  于 2022-11-26  发布在  其他
关注(0)|答案(4)|浏览(226)

我有一个类对象的列表,其中包含电子邮件地址和状态数据成员。我正在尝试将这些对象转换为一个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**我应该提到,我为此获取的数据来自一个DB。我正在从DB反序列化一个JSON,并以几种不同的方式使用数据,因此我不能更改我的类的成员名称。
guicsvcw

guicsvcw1#

我相信这会给予你你想要的。如果可能的话,你将不得不改变你的类属性名称。
给定这个类

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

您可以将对象添加到列表中

List<MyClass> data = new List<MyClass>()
{ 
   new MyClass(){email_address = "e1@it.io", status = "s1"}
   , new MyClass(){ email_address = "e2@it.io", status = "s1"}
};

使用anonymous-type可以将data赋给属性operations

var json = JsonConvert.SerializeObject(new
{
   operations = data
});
lo8azlld

lo8azlld2#

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" } };

//Serialize
var json = JsonConvert.SerializeObject(data);

//Deserialize
var jsonToList = JsonConvert.DeserializeObject<List<MyClass>>(json);
pxiryf3j

pxiryf3j3#

您可以尝试这样做:

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

2ic8powd4#

下面是简单的代码

JArray.fromObject(对象列表);

相关问题