Я пытаюсь сериализовать данные json для информации о конкретном местоположении, например Name, ShortText, ImageUrl и Geocordinates. Я создал класс PoiInfo.cs внутри модели для json-объекта. Таким образом, сериализация Name, ShortText и Imageurl работает хорошо. Но у меня проблема с данными геоинформации. Мой PoiInfo.cs выглядит так:Json Сериализация с использованием Web Api Controller 2 в ASP.Net MVC
public class PoiInfo
{
public string Name { get; set; }
public string Shorttext { get; set; }
public GeoCoordinates GeoCoordinates { get; set; }
public List<string> Images { get; set; }
}
public class GeoCoordinates
{
public double Longitude { get; set; }
public double Latitude { get; set; }
}
Теперь в контроллере я пытаюсь сериализовать таким образом. Я даю shortly-
public JsonResult<PoiInfo> Get(string id)
{
WebClient client = new WebClient();
var TextResponse = //Api I used from wikipedia
var ImageResponse = //Api I used from wikipedia
var GeoResponse = //Api I used from wikipedia
var TextResponseJson = JsonConvert.DeserializeObject<Rootobject>(TextResponse);
var TextfirstKey = TextResponseJson.query.pages.First().Key;
var TextResult = TextResponseJson.query.pages[TextfirstKey].extract;
var ImgresponseJson = //similar as before
var GeoResponseJson = JsonConvert.DeserializeObject<GeoRootobject>(GeoResponse);
var firstKey = GeoResponseJson.query.pages.First().Key;
var Latitude = GeoResponseJson.query.pages[firstKey].coordinates.First().lat;
var Longitude = GeoResponseJson.query.pages[firstKey].coordinates.First().lon;
var result = new PoiInfo();
result.Shorttext = TextResult;
result.Name = id;
result.Images = new List<string> { ImageResult };
result.GeoCoordinates = new List<string> {Double.Parse(Latitude+Longitude)}; // showing error double to string
return Json(result);
}
}
Я хочу, чтобы мой результат в следующем ПУТЬ
{
"Name": "Burgtor",
"Shorttext": "The Burgtor, built 1444 in late Gothic style, was the northern city gate of Hanseatic Lübeck....
"GeoCoordinates": {
"Longitude": 10.6912,
"Latitude": 53.8738
},
"Images": [
"8AB1DF99.jpg or //Image url"
]
}
Пока все нормально, кроме GeoCordinates. Как я могу исправить свой код.
@ JamieD77 Поскольку C# 3.0 Конструктор скобки необязательны при использовании инициализатора. – serhiyb
Если комментарий, который у вас есть рядом с строкой геокодирования, это ошибка, которую вы получаете, тогда ошибка сообщает вам, в чем проблема. Вы пытаетесь поместить двойной список в список строк. Вам нужно включить двойную строку, чтобы она работала. – Marko
@serhiyb: Спасибо, что работает. Мне нужно добавить ToString() после Latidute и долготы. –