2016-03-25 7 views
0

ich einen JSON-String Inhalt haben,nicht immer json Inhalt

[{ 
"id": 1, 
"name": "Fort Craig Elementary", 
"principal": "Michelle Thorne" 
}] 

und ich schreibe sehr einfache asp.net Web-API-Methode oben json zu bekommen,

[Route("api/schools")] 
    public HttpResponseMessage Get() 
    { 
     var json = HttpContext.Current.Server.MapPath("~/data/schools.json"); 
     var response = Request.CreateResponse(HttpStatusCode.OK); 
     response.Content = new StringContent(json, Encoding.UTF8, "application/json"); 
     return response; 
    } 

während ich bin schlagen URL "http://localhost:7602/api/schools", es ist mir Pfad von json statt json Inhalt,

c:\users\ajmal\documents\visual studio 2013\projects\Route\Route\data\schools.json 

Bitte vorschlagen, wie json Inhalt zu erhalten.

Danke,

+0

die Datei lesen und dann den Inhalt auf Antwortinhalt – rashfmnb

+4

'MapPath' ist nur ein Weg, den Bau-Dienstprogramm. Es lädt den Inhalt dieser Datei nicht magisch herunter. – Nyerguds

Antwort

1

Seine genau das tun, was Sie in den Code gesetzt haben. Importieren Sie System.IO und verwenden Sie den Stream-Reader, um die Datei zu lesen. Ihr var json sollte eigentlich var path sein, um mehr Sinn zu machen.

using (var sr = new StreamReader(path)) 
      var json = sr.ReadToEnd();