我已經使用.net編寫了基本Web服務,我打算在移動應用程序中使用它。它目前輸出Json,但結構不是我所需要的。在.NET中序列化JSON
的模型我創建
[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""
}}]}";
基本上唯一的區別是列表中每個對象旁邊的「poi」。有沒有簡單的方法來包含這個?我應該添加我正在使用newtonsoft.json軟件包。
是否有一個特定的原因,您需要額外的「poi」包裝?看起來多餘。 – 2012-03-05 20:59:19
沒有任何理由,除了我是使用json的新手之外,我只能弄清楚如何通過明確地給每個屬性集合一個poi包裝來將json字符串解析回數組。我確信有更好的方法,但現在我只需要一些可行的方法。 – 2012-03-05 22:35:52