2010-12-09 5 views
0

아래의 코드를 사용하여 JSON 데이터를 생성했습니다.ASP.NET MVC 2에서 JSON 출력을 포맷하는 방법

[HttpGet] 
    public ActionResult MarketList() 
    { 
     var mkt = db.GetDailyList(); 
     return Json(mkt, JsonRequestBehavior.AllowGet); 
    } 

이제 JSON이 아래 형식으로 반환됩니다.

[{"gainers":"CAP","date":"Dec 9 ","Open":30.87,"Close":32.41,"change":1.54},{"gainers":"AP","date":"Dec 9 ","Open":20.00,"Close":21.00,"change":1.00}] 

내가 원하는 것은 다음 JSON 형식으로 데이터를 반환하는 것입니다.

[{"dailygainers":{"gainers":"CAP","date":"Dec 9 ","Open":30.87,"Close":32.41,"change":1.54}},{"dailygainers":{"gainers":"AP","date":"Dec 9 ","Open":20.00,"Close":21.00,"change":1.00}}] 

MVC 2를 사용하여 어떻게하면됩니까?

감사합니다.

+0

아무런 기쁨이 없습니다. 다음 코드를 변경하여 결과가 동일합니다. public JsonResult TopGainers() { IEnumerable list = db.GetTopGainers(); return Json (list, JsonRequestBehavior.AllowGet); } – femi

답변

0

변경 작업을 JsonResult. 과거에 사용한 적이있는이 스 니펫을 사용합니다. 드롭 다운 목록을 동적으로 채우는 데이 방법을 사용했습니다.

HomeController

[HttpGet] 
public JsonResult GetSubjects(string term) 
{ 
    IEnumerable<Textbook> subjects = _repository.GetSubjects(term); 
    return Json(subjects, JsonRequestBehavior.AllowGet); 
} 

보기

<p> 
<label for="Subject">Subject</label> 
<select name="Subject" id="Subject"></select> 
</p> 

jQuery를

하지만이 문제에 실수를 한단다 다른 사람을 위해 내가 비슷한 무언가를했고 나는 그것을 할 Linq를 사용
$("#Term").change(function() { 
    var term = $("#Term > option:selected").attr("value"); 
    var items = "<option>Select</option>"; 
    $.getJSON(host + "/Home/GetSubjects/" + term, function (data) { 
     $.each(data, function (i, d) { 
      items += "<option value='" + d.Subject + "'>" + d.Subject + "</option>"; 
     }); 
     $("#Subject").html(items); 
    }); 
}); 
+0

감사하지만 그 didnt 도움이 ... 나는 JsonResult를 사용하도록 코드를 변경했지만 여전히 동일한 출력을 주었다. 내가 알아챈 것은 각각의 json 항목이 'dailygainers'앞에있다. 주요 차이점 ... 코드에서 이것을 설명 할 수 있습니까? thanks – femi

+0

GetDailyList() 메서드를 살펴보고 열거 형 목록을 반환하도록 수정합니다. 어쩌면 var mkt 변경 db.GetDailyList(); IEnumerable list = db.GetDailyList(); – gnome

+0

기쁨 그놈 .. 나는 다음과 코드를 변경하고 결과는 동일했다; public JsonResult TopGainers() {IEnumerable list = db.GetTopGainers(); return Json (list, JsonRequestBehavior.AllowGet); } - – femi

1

.

새 var의 이름을 컨테이너의 이름으로 지정하면됩니다.

var formatedList = (new {dailygainers = db.GetDailyList()}); 
관련 문제