2017-03-28 10 views
-2

JSONにC#オブジェクトを解析する方法は?オブジェクトのリストをJSONに変換する

これは私が得たコードです:

モデル:

namespace MvcApplication1.Models 
{ 
    public class HolidayModel 
    { 
     public int HolidayID { get; set; } 
     public string HolidayDescription { get; set; } 
     public string HolidayStartDate { get; set; } 
     public string HolidayEndDate { get; set; } 
     public int Count { get; set; } 
     public string HolidayOld { get; set; } 
     public string HolidayNew { get; set; } 
     public int EmployeeID { get; set; } 
     public int HolidaySelectedYear { get; set; } 

     public int StartDay { get; set; } 
     public int StartMonth { get; set; } 
     public int StartYear { get; set; } 

     public int EndDay { get; set; } 
     public int EndMonth { get; set; } 
     public int EndYear { get; set; } 
    } 
} 

コントローラー:

public ActionResult GetEvents() 
{ 
    List<Holiday> holidays = conn.Holidays.ToList(); 

    ViewBag.holidaysJson = Json(holidays, JsonRequestBehavior.AllowGet); 
    return View(); 
} 

とビューで、私は次のコードで警告ボックスにJSONを印刷しよう:

<script> 
    alert("@ViewBag.holidaysJson"); 
</script> 

しかし、私は空の警告ボックスを取得します。

ここで問題は何ですか?

+2

holidaysResult!= holidaysJson –

+0

は、私はちょうどそれを変更しかし、私はまだ空の警告ボックス –

+1

はJson'は、単に[ 'JsonResult'インスタンス]を返す(https://msdn.microsoft.com'呼び出していません取得/en-us/library/system.web.mvc.jsonresult)?これは本当にあなたが望むものですか? –

答えて

3

あなたは、単に表示し、Json.Encode方法を使用してJSONに変換するバックモデルを渡すことができます。

コントローラーのコードは次のようになります。

public ActionResult GetEvents() 
{ 
    List<Holiday> holidays = conn.Holidays.ToList(); 
    return View(holidays); 
} 

とビューで:

@model List<Holiday> 
<script> 
    var holidaysJson = @Html.Raw(Json.Encode(Model)); // json object 
    alert(JSON.stringify(holidaysJson)); // converting it to string representation 
</script> 
0

jsonconvert.serializeobjectメソッドを使用できます。

public ActionResult GetEvents() 
{ 
    List<Holiday> holidays = conn.Holidays.ToList(); 
    ViewBag.holidaysResult = JsonConvert.SerializeObject(holidays); 
    return View(holidays); 
} 
関連する問題