Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.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# 正确地从数据库C获取json#_C#_Arraylist - Fatal编程技术网

C# 正确地从数据库C获取json#

C# 正确地从数据库C获取json#,c#,arraylist,C#,Arraylist,我从数据库中得到了一些字符串 电子邮件1链接1数据1 电子邮件1链接1数据2 电子邮件1链接2数据3 电子邮件2链接3数据4 我怎样才能得到这样的一份工作 {log:[ {email: email1, link:link1, data:[data1,data2]}, {email: email1, link:link2, data:[data3]}, {email: email2, link:link3, data:[data4]} ]} 我不知道如何为给定字段创建日期数组,您可以尝试先在对象

我从数据库中得到了一些字符串

电子邮件1链接1数据1

电子邮件1链接1数据2

电子邮件1链接2数据3

电子邮件2链接3数据4

我怎样才能得到这样的一份工作

{log:[
{email: email1, link:link1, data:[data1,data2]},
{email: email1, link:link2, data:[data3]},
{email: email2, link:link3, data:[data4]}
]}

我不知道如何为给定字段创建日期数组,您可以尝试先在对象树中加载数据,然后使用json转换器,如。但您需要为数据提供一致的格式。一种类似下面代码的东西:

class Data{
//to be more defined maybe a string could be a start
string value;
}

class Log{
  string email;
  string link;
  List<Data> data;
}

List<Log> myLog = new List<Log>();
// load your "log" data into this list

string json = JsonConvert.SerializeObject(myLog);
类数据{
//更确切地说,字符串可能是一个开始
字符串值;
}
类日志{
字符串电子邮件;
串链;
列出数据;
}
List myLog=new List();
//将“日志”数据加载到此列表中
字符串json=JsonConvert.SerializeObject(myLog);

答案与第一个答案略有不同

假设您已经能够将数据库中的记录获取到此类中

public class Log
{
    public string Email { get; set; }

    public string Link { get; set; }

    public string Data { get; set; }
}
然后,您可以使用以下LINQ语法通过电子邮件和链接对日志进行分组

var logs = new List<Log>(); // The list should come from the records in the database.
var result = new
{
    Log = logs.GroupBy(x => new { x.Email, x.Link })
            .Select(y => new { y.Key.Email, y.Key.Link, Data = y.Select(z => z.Data) })
};

您可以搜索json.net是否尝试通过电子邮件和链接对记录进行分组?这感觉更像是试图让我们完成您的工作,而不是您自己实际尝试过的问题。您使用的是哪种rdbms?为json字符串生成一个类。从获取类对象,然后序列化为json
var json = JsonConvert.SerializeObject(result);