无法使用动态JSON

时间:2013-05-21 06:30:44

标签: ajax json jquery

我正在使用ajax请求来调用jersey restful url。

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请求,我将通过文本区域给出它。 在上面的代码中,如果我在dynamicJson的位置使用变量jsonObj,则请求成功。但如果我在textarea中使用dynamicJson,我会给出

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

作为请求,无法处理请求。

请尽快帮助我。

2 个答案:

答案 0 :(得分:2)

它不起作用,因为textarea的值是一个字符串,而不是一个JSON对象。我建议:

var dynamicJson = eval(textarea.value);

然后将dynamicJson传递给方法调用,就像现在一样。

答案 1 :(得分:1)

将字符串转换为json对象。

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

KJ