Program Club

ASP.NET 페이지에서 JSON 개체 반환

proclub 2020. 11. 19. 22:13
반응형

ASP.NET 페이지에서 JSON 개체 반환


내 특정 상황에서 내 문제에 대한 몇 가지 해결책이 있습니다. 어느 것이 더 가능한지 알고 싶습니다. 이 경우 서버 측 코드에서 JSON 객체를 반환하여 목표를 달성 할 수도 있습니다. 그러나 나는 그것이 어떻게 이루어지고 최선의 방법이 무엇인지 모릅니다.

먼저 코드에서 반환 된 응답 만 필요하므로 전체 aspx 페이지가 필요하지 않습니다. 그렇다면 웹 서비스, 핸들러를 사용합니까, 아니면 다른 특정 방법이 있습니까?

이 솔루션이 가능합니까? StringBuilder클래스를 사용하여 JSON 문자열을 빌드하고 해당 문자열을 대상 aspx 페이지에 삽입합니까? 주의해야 할 사항이나주의 사항이 있습니까?

당신의 아이디어에 감사드립니다.

문안 인사,

케말

------------ 업데이트! ------------

userlist.aspx 페이지에 JSON 개체가 있다고 가정하면 jQuery와 함께 사용합니다.

{"menu": {
  "id": "color1",
  "value": "color",
  "popup": {
    "menuitem": [
      {"value": "Red"},
      {"value": "Green"},
      {"value": "Yellow"}
    ]
  }
}} // example taken from the json.org/example page

이제 aspx 페이지에서 새 메뉴 항목을 추가하고 싶을 때 어떻게해야하나요?이 방법으로 내 질문이 더 구체적이라고 생각합니다 ...

내 aspx 코드에 새 문자열을 만든다고 가정 해 보겠습니다 "{"value": "Blue"}. 대상 페이지의 기존 항목 목록에 어떻게 삽입합니까? 아니면 이런 상황에 대한 올바른 접근 방식이 아닙니까? 그렇지 않다면 다른 방법으로 달성 할 수 있습니까?

또한이 목록에 새 항목이 추가 될 때 jQuery 이벤트를 발생 시키려면 어떻게해야합니까?

------------ 2015 년 8 월 26 일 업데이트 2 ------------

이 질문을했을 때 제가 문제에 접근하는 방식은 또 다른 측면이었습니다. 나는 이제 주제에 더 능숙 하며이 질문에 대한 접근 방식이 이미 존재하는 JSON을 포함해서는 안되고 코드에서 새로운 JSON을 출력해야하므로 가장 많이 투표 한 답변을 기꺼이 받아 들일 수 있습니다 @DavGarcia.


Page_Load에서 일반 출력을 지우고 직접 작성해야합니다. 예를 들면 다음과 같습니다.

string json = "{\"name\":\"Joe\"}";
Response.Clear();
Response.ContentType = "application/json; charset=utf-8";
Response.Write(json);
Response.End();

C # 객체를 JSON으로 변환하려면 Json.NET 과 같은 라이브러리를 사용할 수 있습니다 .

하지만 .aspx 페이지에서 JSON을 출력하도록하는 대신 웹 서비스 (asmx) 또는 WCF를 사용하는 것이 좋습니다. 둘 다 JSON을 출력 할 수 있습니다.


asp로하는 데 문제가 없습니다 .... MVC로하는 것이 가장 자연 스럽지만 표준 asp로도 할 수 있습니다.

MVC 프레임 워크에는 JSON에 대한 모든 종류의 도우미 클래스가 있습니다. 가능하다면 일부 MVC-love에서 sussing하는 것이 좋습니다. 그렇지 않은 경우 MVC에서 사용하는 JSON 도우미 클래스를 쉽게 가져와 컨텍스트에서 사용할 수 있습니다. asp.net.

편집하다:

다음은 MVC로 JSON 데이터를 반환하는 방법의 예입니다. 이것은 컨트롤러 클래스에 있습니다. 이것은 MVC의 기본 기능입니다. 새 MVC 프로젝트를 만들 때이 항목은 자동으로 생성되므로 특별한 것은 아닙니다. 제가하는 유일한 일은 JSON 인 actionResult를 반환하는 것입니다. 제가 호출하는 JSON 메서드는 Controller 클래스의 메서드입니다. 이것은 모두 매우 기본적인 기본 MVC 항목입니다.

public ActionResult GetData()
{
    var data = new { Name="kevin", Age=40 };
    return Json(data, JsonRequestBehavior.AllowGet);
}

이 반환 데이터는 JQuery를 통해 ajax 호출로 호출 할 수 있습니다.

$.get("/Reader/GetData/", function(data) { someJavacriptMethodOnData(data); });

여기 내 문제에 대한 좋은 해결책이 있습니다.

http://www.mikesdotnetting.com/Article/96/Handling-JSON-Arrays-returned-from-ASP.NET-Web-Services-with-jQuery

also be sure to read this: http://encosia.com/2009/02/10/a-breaking-change-between-versions-of-aspnet-ajax/


With ASP.NET Web Pages you can do this on a single page as a basic GET example (the simplest possible thing that can work.

var json = Json.Encode(new {
    orientation = Cache["orientation"],
    alerted = Cache["alerted"] as bool?,
    since = Cache["since"] as DateTime?
});
Response.Write(json);

If you get code behind, use some like this

        MyCustomObject myObject = new MyCustomObject();
        myObject.name='try';
        //OBJECT -> JSON
        var javaScriptSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
        string myObjectJson = javaScriptSerializer.Serialize(myObject);
        //return JSON   
        Response.Clear();     
        Response.ContentType = "application/json; charset=utf-8";
        Response.Write(myObjectJson );
        Response.End();

So you return a json object serialized with all attributes of MyCustomObject.

참고URL : https://stackoverflow.com/questions/2422983/returning-json-object-from-an-asp-net-page

반응형