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); });
여기 내 문제에 대한 좋은 해결책이 있습니다.
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
'Program Club' 카테고리의 다른 글
| EBS 또는 S3에서 이미지를 유지해야합니까? (0) | 2020.11.20 |
|---|---|
| 선언시 사전에 키 / 값 추가 (0) | 2020.11.20 |
| Unity 2.0 : ResolverOverride와 함께 Resolve를 사용하는 방법? (0) | 2020.11.19 |
| 사후 증가 및 사전 증가 개념? (0) | 2020.11.19 |
| div가 전체 높이를 확장하려면 (0) | 2020.11.19 |