[英]return a multidimensional json array using json.net
我有以下代码:
var all_books = db.Books;
var result = all_books.Select(a => new { a.bookid, a.booktitle, a.bookisbn}).Take(4).ToList();
var jsonData = new {
sEcho = param.sEcho,
iTotalRecords = all_assets.Count(),
iTotalDisplayRecords = all_assets.Count(),
aaData = result
};
return Json(jsonData,JsonRequestBehavior.AllowGet);
返回的json的形式为:
{"sEcho":null,"iTotalRecords":2764,"iTotalDisplayRecords":2764,"aaData":[{"bookid":"M-711745","booktitle":"20844","bookisbn":"HP LA2205wg"},{"bookid":null,"booktitle":"n/a","bookisbn":"n/a"},{"bookid":"M-710587","booktitle":"20707","bookisbn":"HP LA2205wg"},{"bookid":"735129","booktitle":"21272","bookisbn":"HP LA2205wg"}]}
我想返回一个多维数组。
{"sEcho":null,"iTotalRecords":2764,"iTotalDisplayRecords":2764,"aaData":[["bookid":"M-711745","booktitle":"20844","bookisbn":"HP LA2205wg"],["bookid":null,"booktitle":"n/a","bookisbn":"n/a"],["bookid":"M-710587","booktitle":"20707","bookisbn":"HP LA2205wg"],["bookid":"735129","booktitle":"21272","bookisbn":"HP LA2205wg"]]}
我已经试过这段代码:
var result = all_books.Select(a => new List<string[]>() { new string[]{ a.bookid, a.booktitle, a.bookisbn }}).Take(4);
但是我得到这个错误:
The array type 'System.String[]' cannot be initialized in a query result. Consider using 'System.Collections.Generic.List`1[System.String]' instead.
我想念什么?
尝试这个:
var result = all_books
.Select(a => new List<string> { a.bookid, a.booktitle, a.bookisbn })
.Take(4)
.ToList();
序列化它时,应该获得以下JSON,我认为这是您要拍摄的内容:
{
"sEcho":null,
"iTotalRecords":2764,
"iTotalDisplayRecords":2764,
"aaData":
[
["M-711745","20844","HP LA2205wg"],
[null,"n/a","n/a"],
["M-710587","HP LA2205wg","20707"],
["735129","HP LA2205wg","21272"]
]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.