それは逆です:Json.Encode(Model)
プレーンよりも多くのことをしますJavaScriptSerializer
:
内部的にJson.Encode
も を使用しますSystem.Web.Script.Serialization.JavaScriptSerializer
が、 と呼ばれる追加のコンバーターを登録しDynamicJavaScriptConverter
ます。
はどこDynamicJavaScriptConverter
ですか
動的オブジェクトからメンバー値を取得する方法を知っているコンバーター。
Json.Encode
ソースをオンラインで確認できます:
public static class Json
{
private static readonly JavaScriptSerializer _serializer = CreateSerializer();
public static string Encode(object value)
{
// Serialize our dynamic array type as an array
DynamicJsonArray jsonArray = value as DynamicJsonArray;
if (jsonArray != null)
{
return _serializer.Serialize((object[])jsonArray);
}
return _serializer.Serialize(value);
}
private static JavaScriptSerializer CreateSerializer()
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.RegisterConverters(new[] { new DynamicJavaScriptConverter() });
return serializer;
}
//...
}
を使用すると、オブジェクトJson.Encode
を処理するための追加のサポートが得られdynamic
ますが、それが必要ない場合は、JavaScriptSerializer
代わりに「vanilia」を使用できます。