【发布时间】:2013-10-24 13:32:53
【问题描述】:
这是我的服务器端 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 非常有限,但是我仍然可以为我的“第二个”问题获得一些帮助吗?还是推荐其他好的序列化器?
【问题讨论】:
-
你为什么不把 ActivityDate 变成你需要的格式的字符串?
-
JavaScriptSerializer非常有限。如果它完全符合您的要求,那就太好了。如果你想让它做一些不同的事情,那你就完蛋了。尽管您反对,您应该使用不同的序列化程序,例如 json.net。最后,您最后使用正则表达式来消除空格这一事实应该表明您没有使用理想的序列化程序。 -
Json.Net 现在也受到 microsoft web API 的支持,所以它并不是说它是一个夜间飞行的第 3 方组件,随时都会消失。
-
此blog by hanselman 详细介绍。请参阅“我们网络团队将在发布时将 JSON.NET 作为默认的 JSON 序列化器包含在 Web API 中,这样会很好。”
-
它是第 3 方,但微软开始自己使用它,因为他们意识到它比内置的更好。
标签: c# regex json web-services javascriptserializer