Десериализация Json в объект типа T возвращает 0

1

Я пытаюсь десериализовать ответ JSON на List, он всегда возвращает 0. Пожалуйста, посмотрите на код ниже и предложите исправить.

Данные JSON: -

tripSeats = {"seats":[
  {"available":"true","baseFare":"600","serviceTaxAbsolute":"0"},
  {"available":"true","baseFare":"600","serviceTaxAbsolute":"0"}
]}

Мои занятия:-

public class Seat
{
   public string available { get; set; }
   public string baseFare { get; set; }
   public string serviceTaxAbsolute { get; set; }
}

public class Seats
{
   public List<Seat> seats { get; set; }
}

Теперь я пытаюсь десериализовать данные JSON и хранить его в объекте List, как указано ниже

JavaScriptSerializer ser = new JavaScriptSerializer();
List<Seats> seats = ser.Deserialize<List<Seats>>(tripSeats.ToString());

Он ничего не делает, когда я отлаживаю код, который я вижу, имеет 0.

Теги:
serialization

2 ответа

2
Лучший ответ

Проблема в том, что вы пытаетесь десериализовать объект Seats в List<Seats>>. Вам нужно либо изменить его на List<Seat> либо просто использовать Seats:

JavaScriptSerializer ser = new JavaScriptSerializer();
Seats seats = ser.Deserialize<Seats>(tripSeats);

или

JavaScriptSerializer ser = new JavaScriptSerializer();
List<Seat> seats = ser.Deserialize<List<Seat>>(tripSeats);
  • 1
    Спасибо Юваль, Сиденья мест = ser.Deserialize <Сиденья> (tripSeats); работал.
  • 0
    @AbhimanyuKumarVatsa рад помочь :)
0

Попробуйте что-то вроде этого:

public class Seat
{
    public string available { get; set; }
    public string baseFare { get; set; }
    public string serviceTaxAbsolute { get; set; }
    public Seat() { }
}

string text = "[{\"available\":\"true\",\"baseFare\":\"600\",\"serviceTaxAbsolute\":\"0\"},{\"available\":\"true\",\"baseFare\":\"600\",\"serviceTaxAbsolute\":\"0\"}]";
List<Seat> seats = new List<Seat>();
public MainPage()
{
     this.InitializeComponent();
     seats = JsonConvert.DeserializeObject<List<Seat>>(text);
}
  • 0
    tripSeats = {"seat": [{"available": "true", "baseFare": "600", "serviceTaxAbsolute": "0"}, {"available": "true", "baseFare": "600" , "serviceTaxAbsolute": "0"}]};
  • 0
    Смотрите правки, я добавил немного кода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню