2015-07-05 2 views
-1

У меня есть следующий ActionResult:MVC 5 заселить модель с Json

public ActionResult WeatherWidget() 
{ 
    string json = string.Empty; 
    using (var client = new WebClient()) 
    { 
     json = client.DownloadString("http://api.wunderground.com/api/xxxxxxxxx/geolookup/conditions/forecast/q/Australia/sydney.json"); 
    } 

    WeatherWidget weatherWidget = new WeatherWidget() 
    { 
     //What do I put in here? 
    }; 

    return View(weatherWidget); 
} 

И следующую модель:

public class WeatherWidget 
{ 
    public string city { get; set; } 
    public string lat { get; set; } 
    public string lon { get; set; } 
} 

Вот отрывок из JSON:

{ 
    "response": { 
    "version":"0.1", 
    "termsofService":"http://www.wunderground.com/weather/api/d/terms.html", 
    "features": { 
    "geolookup": 1 
    , 
    "conditions": 1 
    , 
    "forecast": 1 
    } 
    } 
    ,"location": { 
     "type":"INTLCITY", 
     "country":"AU", 
     "country_iso3166":"AU", 
     "country_name":"Australia", 
     "state":"VC", 
     "city":"Falls Creek", 
     "tz_short":"AEST", 
     "tz_long":"Australia/Melbourne", 
     "lat":"-36.86999893", 
     "lon":"147.27000427", 
     "zip":"00000", 

Как заполнить модель для отображения на мой взгляд?

например. @ Model.city или @ Html.Raw (Model.city)

У меня нет никаких проблем с отображением данных через JavaScript, на мой взгляд, и я могу сделать это с помощью XML и Html с помощью HtmlAgilityPack, я просто не могу понять, как это сделать с Json.

+0

Используйте Newtonsoft.Json и создайте серию объектов POCO с соответствующими свойствами. – krillgar

+0

У вас есть пример? – Bojangles

ответ

1

Добавить Newtonsoft.Json через NuGet, добавьте следующие используя операторы

using Newtonsoft.Json; 
using Newtonsoft.Json.Linq; 

, а затем использовать следующий код для извлечения данных из вашего ответа JSON.

Смежные вопросы