2016-10-20 12 views
-4

私はあなたがにあなたのデータを変換する必要があります。このコードJSON結果C#、MVCをビルドする方法は?

[HttpGet] 
public JsonResult GetTime() 
{ 
    var data = _db.CourseTimes.Select(c => new { c.Day, c.StartTime, c.EndTime }) 
     .GroupBy(c=>c.Day).ToList(); 

    return Json(data, JsonRequestBehavior.AllowGet); 
} 
+0

現在ご利用いただいているJSONとは何ですか?何を正確に変更したいですか? –

+1

コード/データを画像として追加することは避けてください(実際には画像処理に関する質問でない限り)。 –

+0

コメントありがとうございます。 私はカスタムJSONの結果 彼女はこのイメージのようになる:https://i.stack.imgur.com/OCbHl.png –

答えて

1

は日によって、この

[HttpGet] 
public JsonResult GetTime() 
{ 
    var data = _db.CourseTimes 
     .GroupBy(c => c.Day) 
     .ToDictionary(g => g.Key, v => v.Select(c => new { start = c.StartTime, stop = c.EndTime })); 

    return Json(data, JsonRequestBehavior.AllowGet); 
} 

グループを試してみて、取得するためのキーとして日で辞書を使用します。あなたはまた、JSON Converterはあなたが本当に欲しいものを知ってもらうために.ToDictionaryを呼び出すために必要がある場合がありますあなたが望む予想されるフォーマット。

+0

ありがとうございました 幸運 –

1

を書いた

data

json

のようにそれを返すようにしたい、このデータを持っていますStartおよびStopプロパティのみを持つクラス。

// Class for Database input 
public class Course { 
    public string Day { get; set; } 
    public DateTime StartTime { get; set; } 
    public DateTime EndTime { get; set; } 
} 

// Class for JSON output 
public class StartEnd { 
    public DateTime Start { get; set; } 
    public DateTime Stop { get; set; } 
} 

// Some data to test :) 
var testData = new[] { 
    new Course() { 
     Day = "Sunday", 
     StartTime = DateTime.Parse("01-01-2000 08:20:00"), 
     EndTime = DateTime.Parse("01-01-2000 10:20:00") 
    }, 
    new Course() { 
     Day = "Saturday", 
     StartTime = DateTime.Parse("01-01-2000 11:00:00"), 
     EndTime = DateTime.Parse("01-01-2000 14:00:00") 
    }, 
    new Course() { 
     Day = "Monday", 
     StartTime = DateTime.Parse("01-01-2000 18:20:00"), 
     EndTime = DateTime.Parse("01-01-2000 21:20:00") 
    }, 
    new Course() { 
     Day = "Saturday", 
     StartTime = DateTime.Parse("01-01-2000 20:00:00"), 
     EndTime = DateTime.Parse("01-01-2000 22:00:00") 
    }, 
}; 

// The actual data processing 
var jsonData = testData 
    .GroupBy(x => x.Day, x => new StartEnd() { Start = x.StartTime, Stop = x.EndTime })  // Convert to output type while grouping 
    .ToDictionary(x => x.Key, x => x.ToArray());           // Convert to dictionary, iterating IEnumerables creates by GroupBy 
+0

ありがとうございました.... –

関連する問題