source

jQuery AJAX 응답 구문 분석 중

manycodes 2023. 7. 25. 21:10
반응형

jQuery AJAX 응답 구문 분석 중

나는 jQuery AJAX를 통해 양식을 게시하기 위해 다음 기능을 사용합니다.

$('form#add_systemgoal .error').remove();
var formdata = $('form#add_systemgoal').serialize();
$.ajaxSetup({async: false});  
$.ajax({     
    type: "POST",
    url: '/admin/systemgoalssystemgoalupdate?format=html',
    data: formdata,
    success: function (data) {
        console.log(data);   
    },
});

정상적으로 게시되지만 응답을 구문 분석할 수 없습니다. 콘솔에 다음과 같이 기록됩니다.

{
    "success": 1,
    "inserted": {
        "goal_id": "67",
        "goalsoptions_id": "0",
        "user_id": "0",
        "value": "dsfdsaf",
        "created": "2013-06-05 09:57:38",
        "modified": null,
        "due": "2013-06-17 00:00:00",
        "status": "active",
        "actions_total": "0",
        "actions_title": "sfdgsfdgdf",
        "action_type": "input",
        "points_per_action": "1",
        "expires": "2013-06-11 00:00:00",
        "success": 1
    }
}

제가 찾고 있는 반응이라고 생각합니다.

하지만 내가 하려고 할 때alert(data.success);또는 응답 객체의 다른 구성원 중 하나입니다.undefined.

어떤 조언이든 감사합니다.

부르기

var parsed_data = JSON.parse(data);

원하는 대로 데이터에 액세스할 수 있어야 합니다.

console.log(parsed_data.success);

이제 '1'로 표시됩니다.

 $.ajax({     
     type: "POST",
     url: '/admin/systemgoalssystemgoalupdate?format=html',
     data: formdata,
     success: function (data) {
         console.log(data);
     },
     dataType: "json"
 });

이것이 당신의 Json 응답이라고 상상해 보세요.

{"Visit":{"VisitId":8,"Description":"visit8"}}

다음은 응답을 구문 분석하고 값에 액세스하는 방법입니다.

    Ext.Ajax.request({
    headers: {
        'Content-Type': 'application/json'
    },
    url: 'api/fullvisit/getfullvisit/' + visitId,
    method: 'GET',
    dataType: 'json',
    success: function (response, request) {
        obj = JSON.parse(response.responseText);
        alert(obj.Visit.VisitId);
    }
});

VisitId 필드에 알림이 표시됩니다.

개체가 되려면 JSON 문자열을 구문 분석해야 합니다.

var dataObject = jQuery.parseJSON(data);

다음과 같이 부를 수 있습니다.

success: function (data) {
    var dataObject = jQuery.parseJSON(data);
    if (dataObject.success == 1) {
       var insertedGoalId = dataObject.inserted.goal_id;
       ...
       ...
    }
}

사용 중이므로$.ajax그리고 아닌$.getJSON반환 유형은 일반 텍스트입니다.이제 변환해야 합니다.dataJSON 개체로 이동합니다.

당신은 이것을 당신의 것을 변경함으로써 할 수 있습니다.$.ajax로.$.getJSON(의 줄임말)$.ajaxjson만 가져오도록 사전 구성됨).

또는 구문 분석할 수 있습니다.data수신 후 다음과 같이 JSON에 문자열을 입력합니다.

    success: function (data) {
         var obj = $.parseJSON(data);
         console.log(obj);
    },

사용하다parseJSON 문서를 보세요.

var obj = $.parseJSON(data);

이와 같은 것:

$.ajax({     
    type: "POST",
    url: '/admin/systemgoalssystemgoalupdate?format=html',
    data: formdata,
    success: function (data) {

        console.log($.parseJSON(data)); //will log Object

    }
});

언급URL : https://stackoverflow.com/questions/16935711/parsing-jquery-ajax-response

반응형