AJAX を使用して JSON データを取得するために現在の Javascript ライブラリと相互運用する必要がある Silverlight プロジェクトがあり、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.
ここでのポイントは何ですか?
どんな助けでも大歓迎です。