Я написал базовый веб-сервис с использованием .net, который я намерен использовать в мобильном приложении. В настоящее время он выводит Json, однако структура не совсем то, что мне нужно.Сериализация JSON в .NET
модели я создал
[DataContract]
class PoiList
{
[DataMember]
public List<Poi> Pois { get; set; }
}
[DataContract]
class Poi
{
[DataMember]
public string title { get; set; }
[DataMember]
public string latitude { get; set; }
[DataMember]
public string longitude { get; set; }
}
Затем я добавил некоторые тестовые данные:
PoiList poiList = new PoiList
{
Pois = new List<Poi>()
};
Poi p = new Poi
{
title = "whatever",
latitude = "-2.45554",
longitude = "52.5454645"
};
poiList.Pois.Add(p);
p = new Poi
{
title = "weeee",
latitude = "-2.45554",
longitude = "52.5454645"
};
poiList.Pois.Add(p);
string ans = JsonConvert.SerializeObject(poiList, Formatting.Indented);
Это то, что возвращаемая строка выглядит следующим образом:
{ "Pois": [ { "title": "shit", "latitude": "-2.45554", "longitude": "52.5454645" }, { "title": "weeee", "latitude": "-2.45554", "longitude": "52.5454645" } ] }
... и это то, что я хочу, чтобы выведенный Json выглядел так:
string TempString = @"{ ""pois"":
[{ ""poi"":
{
""title"": ""Test title"",
""latitude"": ""-2.4857856"",
""longitude"": ""54.585656""
}},
{ ""poi"":
{
""title"": ""Halfords"",
""latitude"": ""-2.575656"",
""longitude"": ""53.5867856""
}}]}";
В основном единственная разница - это «пои» рядом с каждым объектом в списке. Есть ли простой способ включить это? Я должен добавить, что я использую пакет newtonsoft.json.
Есть ли конкретная причина, по которой вам нужна эта дополнительная «poi» обертка? Это кажется излишним. –
Нет причин, кроме того, что я новичок в использовании json, и я мог только выяснить, как разбирать json-строку обратно в массив, явно предоставляя оболочку poi для каждого набора свойств. Я уверен, что есть лучший способ, но сейчас мне просто нужно что-то, что работает. –