2016-03-30 4 views
0

Это моя ответная реакция JSON теперь с использованием Fiddler или POSTMAN для тестирования JSON.ASMX JSON NET 4.5 ответ возврата, завернутый в «d», как изменить «d» на «тело»?

{ 
    "d": { 
    "result": null, 
    "errorcode": "test", 
    "errormessage": "Invalid signature.", 
    "resend": null 
    } 
} 

Это то, что я хочу с "г" в "тело":

{ 
    "body": { 
    "result": null, 
    "errorcode": "test", 
    "errormessage": "Invalid signature.", 
    "resend": null 
    } 
} 

Это мой ASMX код, чтобы получить ответ с помощью этого URL - http://localhost:59583/JSONTest.asmx/Test

[WebMethod] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public Response Test(RequestHeader header) 
{ 
    Response response = new Response(); 
    response.result = "N"; 
    response.errorcode = "test"; 
    response.errormessage = "test"; 
    response.resend = "N"; 

    return response; 
} 

Мои Класс ответа:

public class Response 
{ 
    public string result { get; set; } 

    public string errorcode { get; set; } 

    public string errormessage { get; set; } 

    public string resend { get; set; } 
} 

Внимание: мой asmx не использовал jQuery ajax или aspx страницу в этом решении, чтобы вернуть ответ JSON. Потому что я использую .NET 4.5 не 2.0, и я также понимаю, что «d» - это защищенный объект. Таким образом, любые другие способы могут прямо установить объект «d» только на «тело»?

ОБНОВЛЕНО: теперь я добавляю свое решение с помощью страницы aspx. Это мой код. Правильно ли это? И как ajax подключается к моей функции asmx Test()?

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script type="text/javascript" src="Scripts/jquery-1.3.2.min.js"></script> 
    <script type="text/javascript"> 
     function example() { 
      //var result = ""; 
      $.ajax({ 
       type: "POST", 
       url: "JSONTest.asmx/Test", 
       data: "{ }", 
       contentType: false, 
       success: function (result) { 
        var body = JSON.parse(result.d); 
        // you can access your object here 
        console.log(body.result); 
       }, 
       dataType: "json"//set to JSON  
      }) 
     } 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 

    </div> 

    </form> 
</body> 
</html> 

ОБНОВЛЕНО: Исправлено с использованием WCF C#. Больше удобство в использовании, чем asmx.

+0

показать класс «Ответ». –

+1

http://stackoverflow.com/questions/830112/what-does-d-in-json-mean – AakashM

ответ

0
$.ajax({ 
    url: 'your-url-here', 
    type: "post", 
    contentType: false, 
    success: function (result) { 
    var body = JSON.parse(result.d); 
     // you can access your object here 
     console.log(body.result); 
} 
}); 
+0

, что означает, что я должен использовать jquery ajax в aspx по сценарию? – user3901625

+1

Я не очень понимаю, как использовать result.body. Любой другой способ описать это? – user3901625

+0

Вы не сможете изменить «d» на другое значение. Проверьте мой отредактированный ответ. и дайте мне знать. –