2014-06-24 4 views
0

아약스 요청을 보내는 메소드가 있습니다. 서버에서 응답이 수신되면 나는 직렬화하고 나중에 내가 직렬화하는 양식이 있다면 내가 jquery#serializeArray()을 사용할 수 있습니다 알고어레이 직렬화 및 직렬화 해제 (jquery없이)

$.ajax({ 
//..... 
done(function(data) { 

//1 Need to serialize data (which is an array) 


}); 

function myFunction() { 
    //2 Need to de-serialize data which has been serialized 

} 

을 드 직렬화해야합니다

$("form").submit(function(event) { 
    console.log($(this).serializeArray()); 
    event.preventDefault(); 
}); 

을하지만 난 몰라 양식 및 데이터 서버에서 (나는) serializeArrayjquery의 기능과 아무 상관이 있습니다. 어떻게해야합니까? 가장 좋은 방법은 무엇입니까?

jquery를 제외한 제 3 자 라이브러리를 사용하지 않거나 jquery를 전혀 사용하지 않는 것이 바람직합니다.

+0

['$ .ajax'] (http://api.jquery.com/jQuery.ajax/) 설명서를 읽는 것이 도움이됩니다. – Teemu

+0

@ 테 무무,별로. html 페이지에 "데이터"를 그대로 쓸 수 있다는 것을 의미합니까? –

답변

1

JS 객체를 JSON으로 직렬화하는 일반적인 방법은 JSON.stringify()입니다.

다른 방법은 JSON.parse()입니다.

stringify에 대한
o={"firstName":"john","lastName":"doe"}; 

console.log(JSON.stringify(o)); 
console.log(JSON.parse(JSON.stringify(o))); 

참조 MDN을하고 여기에 parse

Fiddle이다.

.serializeArray() jQuery는 form-data를 serialize하기위한 깔끔한 도우미 함수입니다. 처음부터 객체를 만듭니다. 여기에 source이 있습니다. 는 JSON로 데이터를 전송하려는 경우, 단순히

$.ajax({ 
    type: "POST", 
    url: url, 
    data: JSON.stringify(data), 
    success: success, 
    dataType: dataType 
}); 

무료 jQuery.post() 후.

+0

어디서 그것을 직렬화해야합니까 ("done"콜백 내부의 데이터를 받았을 때) : div 또는 일부 js 변수에? –

+0

직렬화의 필요성은 와이어를 통해 JS 객체를 얻는 것입니다. 그래서 서버에 POST하고 싶으면 직렬화합니다. 서버로부터받은 경우에는 이미 serialize되어 있습니다. jQuery를 사용하여 작업 한 것으로 가정합니다. 결과 만 사용하면됩니다. 데이터를 받으면, 당신이 무엇을 할 것인지에 달려 있습니다. –

+0

나는 그것을 받고 나는 .done (...) 콜백 바깥에서 결과에 접근하고 싶다. 다시 말해 나는 결과를 전달하려고한다. –

관련 문제