Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将对象列表转换为json数组_C#_Json_Serialization - Fatal编程技术网

C# 将对象列表转换为json数组

C# 将对象列表转换为json数组,c#,json,serialization,C#,Json,Serialization,我有一个包含电子邮件地址和状态数据成员的类对象列表。我正在尝试将它们转换为json,确保数组中有“operations”一词 这是我的班级: class MyClass { public string email {get; set; } public string status { get; set; } } 这是我当前的代码(不是建筑): EDIT1 我应该提到的是,我得到的数据来自数据库。我正在从数据库中反序列化JSON,并以几种不同的方式使用数据,因此我无法更改我的类的

我有一个包含电子邮件地址和状态数据成员的类对象列表。我正在尝试将它们转换为json,确保数组中有“operations”一词

这是我的班级:

class MyClass
{
    public string email {get; set; }
    public string status { get; set; }
}
这是我当前的代码(不是建筑):

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

我相信这将满足您的需要。如果可能,您必须更改类属性名称-

        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
        });
class-MyClass
{
公共字符串电子邮件地址{get;set;}
公共字符串状态{get;set;}
}
列表数据=新列表(){new MyClass(){email_address=”email1@email.com,status=“good2go”},新MyClass(){email_address='email2@email.com,status=“good2go”};
var json=JsonConvert.SerializeObject(新
{
操作=数据
});

您可以尝试以下方法:

using System.Web.Script.Serialization;
var jsonSerialiser = new JavaScriptSerializer();
var json = jsonSerialiser.Serialize(data);
class-MyClass
{
公共字符串电子邮件地址{get;set;}
公共字符串状态{get;set;}
}
列表数据=新列表(){new MyClass(){email_address=”email1@email.com,status=“good2go”},新MyClass(){email_address='email2@email.com,status=“good2go”};
//连载
var json=JsonConvert.serialized对象(数据);
//反序列化
var jsonToList=JsonConvert.DeserializeObject(json);
下面是简单的代码 JArray.FromObject(对象列表)


你到底得到了什么?为什么你用匿名对象来烦自己?改为使用datacontrat或name attribute@Arpit我得到的最接近的结果是相同的输出,在数组之前没有操作字符串。经过一些调整,这就是我使用的解决方案。谢谢,非常感谢。如果一开始我既不需要数据也不需要操作,那怎么办?@hafizz如果一开始你不需要“操作”,只需执行:
var json=JsonConvert.SerializeObject(操作)
        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
        });
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<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);