从JavaScriptSerializer返回JSON字符串

时间:2013-10-24 13:32:54

标签: c# regex json web-services javascriptserializer

这是我的服务器端C#代码。

JavaScriptSerializer jsSer = new JavaScriptSerializer();

string strJson = jsSer.Serialize(tableData); \\tableData is List type
string strRawJson = Regex.Replace(strJson, "\\s{2,}", ""); \\ Remove Whitespaces

这是我现在得到的strRawJson的值。

"[{\"RowNumber\":1, ... , "ActivityDate\":\"\\/Date(1378310400000)\\/\",\"ErrMessage\":null}]"

这是第一个问题

我希望将'ActivityDate'的值视为以下格式:'2013-10-24 12:00:00:000'。我能怎么做?
请注意我想在 C#(NOT JAVASCRIPT)中执行此操作,我也不想使用 JSON.NET

这是我的第二个问题

正如您可以看到我的第三行代码,我使用Regex删除了一些空格。当我通过JavaScriptSerializer生成JSON时会出现另一个可能的错误吗?

非常感谢您提前! :)

[编辑]
我知道JavascriptSerializer是非常有限的,但是我仍然能为我的“第二个”问题得到一些帮助吗?或推荐另一个好的序列化器?

1 个答案:

答案 0 :(得分:-1)

你使用MVC.net吗?如果是这样,您可以使用控制器的这种方法:

protected internal JsonResult Json(object data, JsonRequestBehavior behavior)
{
  return this.Json(data, (string) null, (Encoding) null, behavior);
}

如果你调用你的动作,你将收到普通的json格式字符串。

您可以使用string.Format()格式化日期,或者只在js中进行格式化。