我有一个 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;}
}
问题是如何将名为“DEADLINE”的时间戳转换为 C# 中的日期格式字符串。我想这可能与 DEADLINE 属性中的 setter 访问器有关。
ConvertTo<string>()
顺便说一句,如果评估的值是 Javascript 中的字符串本身,我就不能使用 ScriptObject 的方法,这很奇怪。即,我只能以这种方式解析字符串:
scriptObject.ToString(); //ConvertTo<string>() will not work.
这里有什么意义?
任何帮助将不胜感激。