Нового для кодирования и новых для JSON, у меня есть JSON строка: https://feeds.citibikenyc.com/stations/stations.jsonПолучить данные из строки JSON и привязать его к XAML
Теперь я могу получить временную метку, но не данные, как stationnames.
вот мой прокси
public class BPNewYorkCityProxy
{
public async static Task<RootObject> GetNewYorkCity()
{
var http = new HttpClient();
var response = await http.GetAsync("https://feeds.citibikenyc.com/stations/stations.json");
var result = await response.Content.ReadAsStringAsync();
var serializer = new DataContractJsonSerializer(typeof(RootObject));
var ms = new MemoryStream(Encoding.UTF8.GetBytes(result));
var data = (RootObject)serializer.ReadObject(ms);
return data;
}
}
[DataContract]
public class StationBeanList
{
[DataMember]
public int id { get; set; }
[DataMember]
public string stationName { get; set; }
[DataMember]
public int availableDocks { get; set; }
[DataMember]
public int totalDocks { get; set; }
[DataMember]
public double latitude { get; set; }
[DataMember]
public double longitude { get; set; }
[DataMember]
public string statusValue { get; set; }
[DataMember]
public int statusKey { get; set; }
[DataMember]
public int availableBikes { get; set; }
[DataMember]
public string stAddress1 { get; set; }
[DataMember]
public string stAddress2 { get; set; }
[DataMember]
public string city { get; set; }
[DataMember]
public string postalCode { get; set; }
[DataMember]
public string location { get; set; }
[DataMember]
public string altitude { get; set; }
[DataMember]
public bool testStation { get; set; }
[DataMember]
public string lastCommunicationTime { get; set; }
[DataMember]
public string landMark { get; set; }
}
[DataContract]
public class RootObject
{
[DataMember]
public string executionTime { get; set; }
[DataMember]
public List<StationBeanList> stationBeanList { get; set; }
}
И вот мой код в моем XAML, как сказал метку времени получить, но теперь я хочу больше, как название станции и доступные места.
private async void GetData_Click(object sender, RoutedEventArgs e)
{
RootObject nycParking = await BPNewYorkCityProxy.GetNewYorkCity();
// how to get a stationname .. my proxy creates a list, does it?...
//myStationName.Text =
// Well this works
myTimeStamp.Text = nycParking.executionTime.ToString();
}
Как это сделать? заранее спасибо
Вы действительно должны рассмотреть возможность использования другого сериалайзер. Newtonsoft Json.Net имеет лучшую производительность и функции, чем DataContractJsonSerializer, и не требует приписывания каждому классу и свойству. Не говоря уже о том, что он имеет гораздо более интуитивный API. –