2016-07-28 46 views
0
Controller 
{ 
namespace WebApplication10.Controllers 
{ 
    public class Default1Controller : ApiController 
    { 
     [ResponseType(typeof(WeatherItem))] 
     public WeatherItem Post(Wcall call) 
     { 

      string apikey = //MYAPIKEY; 
      string url = string.Format("http://api.openweathermap.org/data/2.5/forecast/daily?q={0}&units=metric&cnt=1&APPID={1}", call.city1, apikey); 
      WebClient A1 = new WebClient(); 
      string dataweather = A1.DownloadString(url); 

      WeatherItem a2 = JsonConvert.DeserializeObject<WeatherItem>(dataweather); 
      string przyklad = a2.list.pressure; 
      return a2; 
     } 
    } 
} 
} 
class 
{ 
namespace WebApplication10.Models 
{ 
    public class WeatherItem 
    { 
     public List list { get; set; } 
     public string cod { get; set; } 
     public string message { get; set; } 
     public int cnt { get; set; } 
     //public List<City> city { get; set; }  
    } 
    public class List 
    { 
     public int dt { get; set; } 
     // public List<Temp> temp { get; set; } 
     public string pressure { get; set; } 
     public int humidity { get; set; } 
     // public List<Weather> weather { get; set; } 
     public string speed { get; set; } 
     public string deg { get; set; } 
     public string clauds { get; set; } 
     public int rain { get; set; } 
    } 
    public class Wcall 
    { 
     public string city1 { get; set; } 
     public string street { get; set; } 
    } 
    public class City 
    { 
     public int id { get; set; } 
     public string name { get; set; } 
     //public List<Coords> coords { get; set; } 
     public string country { get; set; } 
     public int population { get; set; } 
    } 
    public class Coords 
    { 
     public string lon { get; set; } 
     public string lat { get; set; } 
    } 
    public class Temp 
    { 
     public string day { get; set; } 
     public string min { get; set; } 
     public string max { get; set; } 
     public string night { get; set; } 
     public string eve { get; set; } 
     public string morn { get; set; } 
    } 
    public class Weather 
    { 
     public int id { get; set; } 
     public string main { get; set; } 
     public string description { get; set; } 
     public string icon { get; set; } 
    } 
} 
} 

Ausnahme: Eine Ausnahme vom Typ 'Newtonsoft.Json.JsonSerializationException' aufgetreten in Newtonsoft.Json.dll wurde aber in Benutzercode Weitere Informationen nicht behandelt: Kann nicht den aktuellen deserialisieren JSON-Objekt (zB { "name": "Wert"}) ...Json deserialize Fehler C# mvc

Sorry für mein Englisch, jemand eine Idee, was ich falsch gemacht?

+2

Fügen Sie den Wert hinzu, den Sie zurück zu "Dataweather" erhalten ... –

Antwort

1

Nur ein kleiner Tipp, im Visual Studio gibt es eine integrierte Funktion zum Konvertieren von JSON in C# -Modell.

Sie es in Edit\Paste Special\Parse Json as classes

Über Ihre Frage finden, Ihr Modell ungültig ist, versuchen Sie dies.

public class WeatherItem 
{ 
    public City city { get; set; } 
    public string cod { get; set; } 
    public float message { get; set; } 
    public int cnt { get; set; } 
    public List[] list { get; set; } 
} 

public class City 
{ 
    public int id { get; set; } 
    public string name { get; set; } 
    public Coord coord { get; set; } 
    public string country { get; set; } 
    public int population { get; set; } 
} 

public class Coord 
{ 
    public float lon { get; set; } 
    public float lat { get; set; } 
} 

public class List 
{ 
    public int dt { get; set; } 
    public Temp temp { get; set; } 
    public float pressure { get; set; } 
    public int humidity { get; set; } 
    public Weather[] weather { get; set; } 
    public float speed { get; set; } 
    public int deg { get; set; } 
    public int clouds { get; set; } 
    public float rain { get; set; } 
} 

public class Temp 
{ 
    public float day { get; set; } 
    public float min { get; set; } 
    public float max { get; set; } 
    public float night { get; set; } 
    public float eve { get; set; } 
    public float morn { get; set; } 
} 

public class Weather 
{ 
    public int id { get; set; } 
    public string main { get; set; } 
    public string description { get; set; } 
    public string icon { get; set; } 
}