C# 正确地从数据库C获取json#
我从数据库中得到了一些字符串 电子邮件1链接1数据1 电子邮件1链接1数据2 电子邮件1链接2数据3 电子邮件2链接3数据4 我怎样才能得到这样的一份工作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]} ]} 我不知道如何为给定字段创建日期数组,您可以尝试先在对象
{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);