Как использовать restsharp для чтения массива Json

Мне нужно прочитать следующий кусок кода, используя RestSharp. Моя проблема в том, как получить массив в правильной структуре. Как мне настроить класс, который будет содержать объект, чтобы эта работа работала правильно?

Я хотел бы десериализовать объект "0" и "1" в списке типа AcUserInfo.

Большое спасибо. Andrea

{
   "0":{
      "id":"2",
      "subscriberid":"2",
      "cdate":"2012-09-28 16:49:06",
      "sdate":"2012-09-28 16:49:06",
      "first_name":"Al",
      "last_name":"",
      "email":"test@verizon.net"
   },
   "1":{
      "id":"29",
      "subscriberid":"29",
      "cdate":"2012-10-02 15:08:29",
      "sdate":"2012-10-02 15:08:29",
      "first_name":"Mark",
      "last_name":"",
      "email":"test2@verizon.net"
   },
   "result_code":1,
   "result_message":"Success: Something is returned",
   "result_output":"json"
}

Вот класс, который я создал:

public class SubscriberList {
    public int result_code { get; set; }
    public string result_message { get; set; }
    public string result_output { get; set; }
    public List<AcUserInfo> row { get; set; }

    SubscriberList(){
        row = new List<AcUserInfo>();
    }
}

1 ответ

Решение

Ваши данные JSON не содержат массив и, следовательно, не могут быть десериализованы в список<>.

Либо конвертируйте ваш JSON во что-то вроде этого:

{
  [{
  "id":"2",
  "subscriberid":"2",
  "cdate":"2012-09-28 16:49:06",
  "sdate":"2012-09-28 16:49:06",
  "first_name":"Al",
  "last_name":"",
  "email":"test@verizon.net"
  },
  {
  "id":"29",
  "subscriberid":"29",
  "cdate":"2012-10-02 15:08:29",
  "sdate":"2012-10-02 15:08:29",
  "first_name":"Mark",
  "last_name":"",
  "email":"test2@verizon.net"
  }],
  "result_code":1,
  "result_message":"Success: Something is returned",
  "result_output":"json"
}

Или, если у вас всегда есть только элементы "0" и "1", измените класс SubscriberList на соответствующий ему.

Другие вопросы по тегам