【发布时间】:2013-06-11 15:13:38
【问题描述】:
我正在执行一个 linq 查询,它会从表中获取所有记录:
var data = _context.People.ToList(); //_context is my DataContext.
以上返回值:
{
"name": "john",
"age": "30"
},
{
"name": "jane",
"age": "31"
}
但根据jsonlint,这是无效的,我需要将其返回为:
[{
"name": "john",
"age": "30"
},
{
"name": "jane",
"age": "31"
}]
我该怎么做?
viewData.xldata = [];
$.each(data, function(i, row) {
var strRow = JSON.stringify(row);
viewData.xldata.push(strRow);});
使用 `JavaScriptSerializer 反序列化:
var people = jss.Deserialize<List<People>>(args["xldata"]);
【问题讨论】:
-
您如何将
List转换为 json? -
@BhushanFirake - 我有一个脚本,我在其中循环遍历每一行并将其字符串化。我更新了帖子。
-
在你的代码中直接使用
JSON.stringify(data);,不需要循环 -
哦。我以为你试图在服务器端代码中生成一个 json-valid 字符串,而不是 javascript,哎呀。
-
@BhushanFirake - 我这样做了,然后将
[]放在字符串周围,但现在我收到错误消息:Type 'JsonDictionaryObject' is not supported for deserialization of an array.在行中:` public JsonDictionaryObject(string JsonString) : base( jss.Deserialize(JsonString)) { }`
标签: c# json linq javascriptserializer