.Net AJAX には、オブジェクトを手動で JSON 文字列にシリアル化する組み込みの方法はありますか?
-
09-06-2019 - |
質問
見つけました ScriptingJsonSerializationSection
しかし、使い方がわかりません。オブジェクトを JSON 文字列に手動で変換する関数を作成することもできますが、.Net では、 <System.Web.Services.WebMethod()>
そして <System.Web.Script.Services.ScriptMethod()>
属性があるため、私が見逃している組み込みの方法があるはずです。
追伸:Asp.Net 2.0 と VB.Net の使用 - これをタグに入れましたが、見逃している人がいると思います。
解決
これでうまくいくはずです
Dim jsonSerialiser As New System.Web.Script.Serialization.JavaScriptSerializer
Dim jsonString as String = jsonSerialiser.Serialize(yourObject)
他のヒント
あなたが探しているのはこのクラスだと思います:
System.ServiceModel.Web.DataContractJsonSerializer
Rick Strahl の例は次のとおりです。 .NET 3.5 の DataContractJsonSerializer
JavaScriptSerializer クラスは技術的に非推奨になっているため、 DataContractJsonSerializer 3.0 以降を使用している場合は、これが推奨される方法です。
現在、次の拡張メソッドを使用してオブジェクトをシリアル化および逆シリアル化しています。
using System.Web.Script.Serialization;
public static string ToJSON(this object objectToSerialize)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
return jss.Serialize(objectToSerialize);
}
/// <typeparam name="T">The type we are deserializing the JSON to.</typeparam>
public static T FromJSON<T>(this string json)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
return jss.Deserialize<T>(json);
}
私はこれをよく使用します。この実装は少し単純であることに注意してください (つまり、シリアル化する内容と、クライアントでの使用方法 (特に DateTimes) によっては、潜在的な問題がいくつかあります)。
System.Web.Extensions アセンブリ バージョン 3.5.0.0 には、 JavaScriptシリアライザー あなたが望むものを処理するクラス。
試す
System.Web.Script.Serialization.JavaScriptSerializer
またはチェックアウト JSON.org あなたが望むことを正確に実行するために書かれたライブラリの完全なリストがあります。