:JavaScriptSerializer가 JScript.NET에서 호출 될 때 잘못된 대답을 반환하는 이유는 무엇입니까? 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 배열은 기본 배열보다 느리다고 생각되지만 여전히 작동하고 있다고 생각합니까?
그래, 그렇지만 일종의 데이터 형식 검사를 처리하는 것은 serializer의 작업이라고 생각합니다. 잠시 후 serializer가 정상적으로 보이지만 JScript에서 제대로 정의되지 않은 개체를 보내고있는 것처럼 보입니다. –