2017-05-14 11 views
0

내 배열을 컨트롤러에 AJAX로 보낼 때 JSON으로 변환하여 사용하기 쉽습니다.JSON.Stringify는 배열의 인덱스와 길이를 포함합니다.

$("#selectedDropdown option").each(function() { 
    selectedLanguages.push($(this).val()); 
}); 

내가 이런 식으로 캐릭터 라인 화 :

나는이처럼 내 배열을 구축 그것이 내 컨트롤러에 도달 할 때

data["PreferredLanguages"] = $(selectedLanguages); 

그러나, 다음과 같이 나타납니다

"PreferredLanguages":{"0":"ZA","1":"CM","2":"GH","3":"ES","length":4}} 

참고 : 배열처럼 보이지 않습니다.

이렇게하면 비 직렬화되지 않습니다. 이 문제를 어떻게 해결할 수 있습니까?

답변

0

$(selectedLanguages) 배열을 문자열화하지 않습니다. $은 jQuery 객체의 경우 constructor입니다.

var arr = ['a','b','c']; 
 
var $arr = $(arr); 
 

 
console.log('$arr:', JSON.stringify($arr)); 
 
console.log('$arr is an array:', Array.isArray($arr)); 
 

 
console.log('arr:', JSON.stringify(arr)); 
 
console.log('arr is an array:', Array.isArray(arr));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

:

data["PreferredLanguages"] = JSON.stringify(selectedLanguages); 

당신은이 코드를 실행하여 배열 및 jQuery 오브젝트 사이의 차이를 볼 수 있습니다

당신은 당신의 배열을 캐릭터 라인 화하는 global JSON object을 사용할 수 있습니다