我有一些来自数据库的字符串
email1 link1 data1
email1 link1 data2
email1 link2 data3
email2 link3 data4
我怎样才能得到这样的json?
{log:[
{email: email1, link:link1, data:[data1,data2]},
{email: email1, link:link2, data:[data3]},
{email: email2, link:link3, data:[data4]}
]}
我不知道如何为给定字段创建日期数组
答案 0 :(得分:3)
您可以尝试首先在对象树中加载数据,然后使用像Json.Net这样的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);
答案 1 :(得分:2)
第一个答案的回答略有不同。
假设您已经能够将数据库中的记录存入此类。
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) })
};
并使用Newtonsoft.Json
对其进行序列化。
var json = JsonConvert.SerializeObject(result);