それは逆です: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」を使用できます。