【发布时间】:2013-04-05 13:09:25
【问题描述】:
我有一个 Silverlight 项目,它必须与当前的 Javascript 库互操作才能使用 AJAX 获取 JSON 数据,并且 JSON 数据如下所示:
{"javaClass":"java.util.ArrayList","list":[{"JOB_NUM":"21", "DEADLINE":{"time":1359583200000,"javaClass":"java.sql.Timestamp"}, "javaClass":"JobEntity"}]}
在 Silverlight 中,我创建了一个“桥”类来将 JSON 数据转换为 C# 类。主要方法如下:
public static T Invoke<T>(string method)
{
ScriptObject result = HtmlPage.Window.Eval("$.parseJSON("+method+")") as ScriptObject;
if (result != null)
{
ScriptObject data = result.GetProperty("list") as ScriptObject;
if (data != null)
return data.ConvertTo<T>();
}
return default(T);
}
另外,我在这里附上实体 POCO 类(简化)。
public class JobEntity
{
public string JOB_NUM {get; set;}
public string DEADLINE {get; set;}
}
问题是如何在 C# 中将名为“DEADLINE”的时间戳转换为日期格式的字符串。我猜这可能与 DEADLINE 属性中的 setter 访问器有关。
顺便说一句,如果评估的值是 Javascript 中的字符串本身,我无法使用 ScriptObject 的 ConvertTo<string>() 方法,这很奇怪。即我只能这样解析字符串:
scriptObject.ToString(); //ConvertTo<string>() will not work.
这里有什么意义?
任何帮助将不胜感激。
【问题讨论】:
标签: c# javascript .net json silverlight