복붙노트

[JQUERY] 어떻게 AJAX WebService에에 보낼 수있는 JSON 객체를 구축합니까?

JQUERY

어떻게 AJAX WebService에에 보낼 수있는 JSON 객체를 구축합니까?

해결법


  1. 1.대답은 매우 간단하고 ContentType이이 JSON이 아닌 경우 내가이 .asmx 웹 서비스에서 JSON을 반환 할 수 있습니다 내 이전 게시물을 기반으로? 및 httpget의 WebMethod에 JQuery와 아약스 호출 (C #을) 작동하지 않습니다.

    대답은 매우 간단하고 ContentType이이 JSON이 아닌 경우 내가이 .asmx 웹 서비스에서 JSON을 반환 할 수 있습니다 내 이전 게시물을 기반으로? 및 httpget의 WebMethod에 JQuery와 아약스 호출 (C #을) 작동하지 않습니다.

    데이터 JSON 부호화한다. 당신은 모든 입력 매개 변수를 인코딩 분리해야합니다. 당신은 하나 개의 매개 변수를 가지고 있기 때문에 당신은 다음과 같이해야한다 :

    먼저 당신에게 같은 기본 자바 스크립트 데이터와 같은 데이터를 구성 :

    var myData = {Address: {Address1:"address data 1",
                            Address2:"address data 2",
                            City: "Bonn",
                            State: "NRW",
                            Zip: "53353",
                            {Code: 123,
                             Description: "bla bla"}}};
    

    다음 아약스 요청의 매개 변수로 제공 {요청 :. $ toJSON (MYDATA)}

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "http://bmccorm-xp/HBUpsAddressValidation/AddressValidation.asmx/ValidateAddress",
        data: {request:$.toJSON(myData)},
        dataType: "json",
        success: function(response){
            alert(response);
        }
    })
    

    대신 $ .toJSON의 당신이 http://www.json.org/에서 다른 버전 (JSON.stringify)를 사용할 수 있습니다 플러그인 JSON에서 제공하는

    당신의 WebMethod 매개 변수이 좋아 한 경우

    public Response ValidateAddress(Request request1, Request myRequest2)
    

    AJAX 호출의 데이터 파라미터 값이 같아야

    data: {request1:$.toJSON(myData1), myRequest2:$.toJSON(myData2)}
    

    또는

    data: {request1:JSON.stringify(myData1), myRequest2:JSON.stringify(myData2)}
    

    당신은 JSON 인코더의 다른 버전을 선호하는 경우.


  2. 2.두 부분으로 귀하의 문제 나누기 :

    두 부분으로 귀하의 문제 나누기 :

    당신의 인용 코드에 대한 여러분의 JSON은 완벽하게 유효합니다. 그러나 존재의 손으로 만들어진 고통이다. 다른 사람이 불러 것처럼,이 작업을 수행하는 가장 쉬운 방법은 자바 스크립트 객체 다음 JSON.stringify을 만드는 것입니다. 예:

    var data = {
        "Address": {
            "Address1": "123 Main Street",
            "Address2": null,
            "City": "New York",
            "State": "NY",
            "Zip": "10000",
            "AddressClassification": null
        }
    };
    data = JSON.stringify(data);
    

    첫 번째 단계는 상기 JSON의 수퍼 세트 인 자바 오브젝트 리터럴 표기법 사용하여 오브젝트 생성 (상기 사용 된 바와 같이, 실제로 JSON 동일하다, 그러나 그 무시). 제 2 비트는 오브젝트를 문자열로 변환.

    물론, 값은 위의 가능성은 리터럴 문자열이다. 여기에 당신이 변수에 해당 값의 각이 있다면 같을 것이다 무엇 :

    var data = {
        "Address": {
            "Address1": address1,
            "Address2": address2,
            "City": city,
            "State": state,
            "Zip": zip,
            "AddressClassification": null
        }
    };
    data = JSON.stringify(data);
    

    어느 쪽이든, 지금 당신은 문자열을 가지고있다.

    당신은 웹 서비스가 POST 본체가되도록 JSON 형식의 데이터를 예상하고 있는지 여부를 알아낼 필요하거나 일반적인 이름 매개 변수의 값을로 JSON 데이터를 기대 않다면 = 값 POST 데이터를 URL이 인코딩. 나는 웹 서비스가 특별히 JSON 형식의 데이터에 사용할 것 때문에, 전자를 기대하는 경향이있다.

    POST 본문해야하는데 경우, 음, 나는 결코 jQuery를 함께하고 외모 나에게 정정 당신이 인용 한 문서를 읽는 것을 해본했습니다. 그것이 작동하지 않는 경우에, 나는 당신의 객체 구조들이보고 기다리고있어 정말 어떤 것을 한 번 확인 것입니다. 그냥 하나의 주소를 확인하는 않다면 오히려 예컨대 주소 객체를 포함하는 객체보다, 그냥 주소 객체를받을 것으로 예상 않다면 예를 들어, 궁금 :

    {
        "Address1": "123 Main Street",
        "Address2": null,
        "City": "New York",
        "State": "NY",
        "Zip": "10000",
        "AddressClassification": null
    }
    

    그것은 이전 URL 인코딩 된 다중 폼 데이터 지루한에서 매개 변수의 값을해야하는데 경우 :

    $.ajax({
        type: "POST",
        url: "http://bmccorm-xp/HBUpsAddressValidation/AddressValidation.asmx/ValidateAddress",
        data: "paramname=" + encodeURIComponent(data),
        dataType: "json",
        success: function(response){
            alert(response);
        }
    })
    

    내가 jQuery를 다시 기본 ( "응용 프로그램 / x-www-form-urlencoded를")에 떨어질 것이다 있도록 ContentType을 제거하고 적절하게 그 콘텐츠 형식으로 인코딩되어 우리가 위에서 만든 문자열을 확보했습니다. 당신은 사용에 paramName에 발견해야합니다 (아마도 "주소"를 주소 자식 객체를 포함하는 객체가 아니라, 단지 주소 전송에 대한 내 이전 의견을 참조?).


  3. 3.JSON.stringify는 자바 스크립트 객체를 가지고 문자열로 바뀔 것이다. 내가 내기하지만 당신은 자바 스크립트 객체 등을 만드는 경우

    JSON.stringify는 자바 스크립트 객체를 가지고 문자열로 바뀔 것이다. 내가 내기하지만 당신은 자바 스크립트 객체 등을 만드는 경우

    var jsonData = {
        address: 'address',
        address1: 'address1',
        address2: 'address2'
    };
    

    그리고 그것은 당신을 위해 JSON 텍스트로 개체를 변환합니다, 아약스 호출에 '데이터'로 jsonData 전달합니다.


  4. 4.나는 자바 스크립트 객체를 만든 다음 유효한 JSON로를 설정하는 JSON.stringify을 부를 것이다. 당신은 여기에서 다운로드 할 수 있습니다.

    나는 자바 스크립트 객체를 만든 다음 유효한 JSON로를 설정하는 JSON.stringify을 부를 것이다. 당신은 여기에서 다운로드 할 수 있습니다.

    당신이 뭔가를 할 수 있습니다 :

    var address= {};
    
    address["Address1"] = "your val";
    address["Address2"] = "your val";
    address["City"] = "your val";
    address["State"] = "your val";
    address["Zip"] = "your val";
    
    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "http://bmccorm-xp/HBUpsAddressValidation/AddressValidation.asmx/ValidateAddress",
        data: JSON.stringify(address),
        dataType: "json",
        success: function(response){
            alert(response);
        }
    });
    

  5. 5.이처럼 전달해야합니다 :

    이처럼 전달해야합니다 :

    $.ajax({
      type: "POST",
      url: "WebService.asmx/WebMethodName",
      data: "{'fname':'dave', 'lname':'ward'}",
      contentType: "application/json; charset=utf-8",
      dataType: "json"
    });
    

    ASP.NET AJAX와 jQuery를 사용하는 경우 피하기 위해 3 실수 : 자세한 내용은이 문서에서보세요


  6. 6.모든 사과이 답변이 너무 늦게 온다, 또는 중복 인 경우.

    모든 사과이 답변이 너무 늦게 온다, 또는 중복 인 경우.

    당신은 JSON 객체의 단지 문자열을 보내려고 것처럼 내가 이해에서, 그것은 나타납니다. 객체를 구축 한 후 속성과 협력하고 그대로 그것을 보내십시오.

    예:

    address = new Object();
    address.Address = new Object();
    address.Address.Address1 = "123 Main Street";
    address.Address.Address2 = "";
    address.Address.City = "New York";
    address.Address.State = "NY";
    address.Address.Zip = "10000";
    address.Address.AddressClassification = null;
    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "http://bmccorm-xp/HBUpsAddressValidation/AddressValidation.asmx/ValidateAddress",
        data: address,
        dataType: "json",
        success: function(response){
            alert(response);
        }
    });
    

  7. 7.자신이 JQuery와 플러그인이 JSON 모든 자바 스크립트 객체를 변환 할 수 있습니다 가져옵니다. 예를 들면 :

    자신이 JQuery와 플러그인이 JSON 모든 자바 스크립트 객체를 변환 할 수 있습니다 가져옵니다. 예를 들면 :

    http://plugins.jquery.com/project/json

  8. from https://stackoverflow.com/questions/2737525/how-do-i-build-a-json-object-to-send-to-an-ajax-webservice by cc-by-sa and MIT license