Опитвам се да изпратя публикация до моя WebApi и следващото получаване и десериализиране на резултата към моя обект. Изпращам публикация от Windows Phone 8.1. Как да получа обект, изпратен от моя Web Api?
Моят конструктор:
public MyTravelsPage()
{
Task getTravels = this.GetTravels();
}
internal async Task GetTravels()
{
string uri = "http://localhost:6234/api/services/app/travel/GetMyTravels";
TravelPositions travel = new TravelPositions();
travel.UserGuid = UserIdentity.UserId;
string x = JsonConvert.SerializeObject(travel);
var stringContent = "";
using (var client = new System.Net.Http.HttpClient())
{
// New code:
client.BaseAddress = new Uri(uri);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpContent content = new StringContent(x, Encoding.UTF8);
var response = await client.PostAsync(uri, new StringContent(x, Encoding.UTF8, "application/json"));
var p = response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<Dictionary<string, string>>(p.Result);
}
}
В p.Result получавам този низ:
"{\"success\":true,\"result\":{\"output\":[{\"id\":1,\"userGuid\":\"334e5955-fe89-4a49-b8ab-f0b36575bd8d\",\"where\":\"Bukowno\",\"forMoney\":false,\"money\":\"\",\"peopleCount\":1,\"driverGuid\":null,\"longitude\":-122.188606,\"latitude\":47.622482},{\"id\":2,\"userGuid\":\"334e5955-fe89-4a49-b8ab-f0b36575bd8d\",\"where\":\"Krakow\",\"forMoney\":false,\"money\":\"\",\"peopleCount\":1,\"driverGuid\":null,\"longitude\":-122.188606,\"latitude\":47.622482},{\"id\":3,\"userGuid\":\"334e5955-fe89-4a49-b8ab-f0b36575bd8d\",\"where\":\"Warszawa\",\"forMoney\":true,\"money\":\"\",\"peopleCount\":2,\"driverGuid\":null,\"longitude\":-122.188606,\"latitude\":47.622482},{\"id\":4,\"userGuid\":\"334e5955-fe89-4a49-b8ab-f0b36575bd8d\",\"where\":\"Zakopane\",\"forMoney\":false,\"money\":\"\",\"peopleCount\":1,\"driverGuid\":null,\"longitude\":-122.188606,\"latitude\":47.622482}]},\"error\":null,\"unAuthorizedRequest\":false}"
Как да получите само стойност "резултат" от този json низ?
За съжаление, последният ми ред:
var result = JsonConvert.DeserializeObject<Dictionary<string, string>>(p.Result);
Не дава речника ... Само грешка
За повече информация това е обект от WebApi
public class TravelOutput
{
public List<Travel> output { get; set; }
}
public class Travel
{
public int Id { get; set; }
public Guid UserGuid { get; set; }
public string Where { get; set; }
public bool ForMoney { get; set; }
public string Money { get; set; }
public int PeopleCount { get; set; }
public Guid? DriverGuid { get; set; }
public double Longitude { get; set; }
public double Latitude { get; set; }
}