2013-05-21 7 views
1

jersey restful url을 호출하기 위해 ajax 요청을 사용하고 있습니다.동적 JSON을 사용할 수 없습니다

function deRegisterPersonOrganization() { 
    var dynamicJson = $('#jsonRequest').val(); 
    alert("Text Area JSON : " +dynamicJson); 
    var jsonObj = { 
     "solutionProviderKey" : "e3fad159-ac18-462d-a20e-17763af3689b" 
    }; 
    $.ajax({ 
     type: 'POST', 
     contentType: 'application/json', 
     url: rootURL + '/e3fad159-ac18-462d-a20e-17763af3689b/deregister', 
     dataType: "json", 
     data: JSON.stringify(dynamicJson), 
     success: function(data, textStatus, jqXHR){ 
      alert('Deregister successfull'); 
     }, 
     error: function(jqXHR, textStatus, errorThrown){ 
      alert('Deregister error: ' + textStatus); 
     } 
    }); 
} 

문제는 내가 텍스트 영역을 통해 제공 할 JSON 요청을 제공해야합니다. 위 코드에서 변수 jsonObj를 dynamicJson 대신 사용하면 요청이 성공합니다. 하지만 내가 textarea에서 제공하는 dynamicJson을 사용하는 경우

{ 
    "solutionProviderKey" : "e3fad159-ac18-462d-a20e-17763af3689b" 
} 

요청으로 요청을 처리 할 수 ​​없습니다.

최대한 빨리 도와주세요.

답변

1

문자열을 json 개체로 바꿉니다.

var dynamicJson = JSON.toJSON($('#jsonRequest').val()); 

KJ

+1

고맙습니다. 또한 $ .parseJSON ($ ('# jsonRequest') .val())이 작동합니다. – Satheesh

2

textarea의 값이 JSON 객체가 아닌 문자열이기 때문에 작동하지 않습니다. 나는 다음과 같이 제안한다.

var dynamicJson = eval(textarea.value); 

그런 다음 dynamicJson을 메소드 호출에 전달한다.

+0

왜 자바 스크립트 평가가 나쁜 생각을 기능을 사용? http://stackoverflow.com/questions/86513/why-is-using-the-javascript-eval-function-a-bad-idea – Kieran

+0

예. 이것은 문자열을 JSON 객체로 변환하는 하나의 제안 방법 일뿐입니다. 나는 대답에서 다른 길을 제안하는 걸 볼 수 있습니다. 의견에 감사드립니다. –

+0

이 작동하지 않습니다. 요청은 여기서 제출 이벤트를 형성하도록 변경됩니다. – Satheesh

관련 문제