ASP.NET/C#の場合:
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Script.Serialization" %>
<%
JavaScriptSerializer jss = new JavaScriptSerializer();
string[] fruits = new string[3] {"apple","banana","crunchberries"};
string output = jss.Serialize(fruits);
%>
<html>
fruits=<%=output%>
</html>
戻り値fruits=["apple","banana","crunchberries"]
ASP.NET/VB.NETの場合:
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Script.Serialization" %>
<%
dim jss as new JavaScriptSerializer()
dim fruits = new String(2) {"apple","banana","crunchberries"}
dim output as string = jss.Serialize(fruits)
%>
<html>
fruits=<%=output%>
</html>
戻り値fruits=["apple","banana","crunchberries"]
しかし、ASP.NET / JScript.NETでは:
<%@ Page Language="JScript" %>
<%@ Import Namespace="System.Web.Script.Serialization" %>
<%
var jss:JavaScriptSerializer = new JavaScriptSerializer;
var fruits = ["apple","banana","crunchberries"];
var output = jss.Serialize(fruits);
%>
<html>
fruits=<%=output%>
</html>
戻り値fruits=["0","1","2"]
これは完全に壊れているようです。これは、フルーツのデータ型を明示的に宣言することで修正できます。これにより、これが「ネイティブ配列」になります。
<%@ Page Language="JScript" %>
<%@ Import Namespace="System.Web.Script.Serialization" %>
<%
var jss:JavaScriptSerializer = new JavaScriptSerializer;
var fruits:String = ["apple","banana","crunchberries"];
var output = jss.Serialize(fruits);
%>
<html>
fruits=<%=output%>
</html>
戻り値fruits=["apple","banana","crunchberries"]
正しいシリアル化を取得するためにタイプが必須である理由がわかりません。(var fruits = ["apple","banana","crunchberries",5]
悪いコードかもしれませんが、JavascriptとJscriptの両方で合法です。)JScript配列はネイティブ配列よりも遅いと思われますが、それでも機能すると思われますよね?