Nishisansi Ответов: 2

Как получить доступ к десериализованным объектам?


Я скачал строку Json с URL-адреса. и создал классы для десериализации с помощью NewtonJSoft. Теперь мне нужно получить доступ к десериализованным объектам. Как это сделать?

Мой JSON файл:

[^]

Что я уже пробовал:

public class Rootobject
      {
          public Status status { get; set; }
      }

      public class Status
      {
          public Success[] success { get; set; }
      }

      public class Success
      {
          public User User { get; set; }
          public Speciality Speciality { get; set; }
      }


      public class User
      {
          public string id { get; set; }
          public string username { get; set; }
      }

// Десериализация кода
var tmp = JsonConvert.DeserializeObject<Rootobject>(json);

Мой вопрос заключается в том, как получить доступ к пользовательским объектам?

Afzaal Ahmad Zeeshan

Вы можете просто попробовать, var user = tmp.Status.success.FirstOrDefault().User.

2 Ответов

Рейтинг:
1

Graeme_Grant

Эта статья очень подробно освещает эту тему: Работа с JSON в C# и VB[^]

Классы, созданные с помощью JSON Utils: генерация C#, VB.Net, SQL Table, Java и PHP из JSON[^]:

public class User
{
    [JsonProperty("id")]
    public string Id { get; set; }

    [JsonProperty("username")]
    public string Username { get; set; }

    [JsonProperty("username_url")]
    public string UsernameUrl { get; set; }

    [JsonProperty("firstname")]
    public object Firstname { get; set; }

    [JsonProperty("lastname")]
    public object Lastname { get; set; }

    [JsonProperty("email")]
    public string Email { get; set; }

    [JsonProperty("password")]
    public string Password { get; set; }

    [JsonProperty("user_level")]
    public string UserLevel { get; set; }

    [JsonProperty("refer_key")]
    public string ReferKey { get; set; }

    [JsonProperty("image")]
    public string Image { get; set; }

    [JsonProperty("start_time")]
    public object StartTime { get; set; }

    [JsonProperty("end_time")]
    public object EndTime { get; set; }

    [JsonProperty("gender")]
    public string Gender { get; set; }

    [JsonProperty("birthday")]
    public string Birthday { get; set; }

    [JsonProperty("city")]
    public string City { get; set; }

    [JsonProperty("state")]
    public object State { get; set; }

    [JsonProperty("address")]
    public string Address { get; set; }

    [JsonProperty("description")]
    public string Description { get; set; }

    [JsonProperty("speciality_id")]
    public string SpecialityId { get; set; }

    [JsonProperty("busy_message")]
    public object BusyMessage { get; set; }

    [JsonProperty("created")]
    public string Created { get; set; }

    [JsonProperty("modified")]
    public string Modified { get; set; }

    [JsonProperty("area_expertise")]
    public string AreaExpertise { get; set; }

    [JsonProperty("medical_registration_no")]
    public string MedicalRegistrationNo { get; set; }

    [JsonProperty("additional_services")]
    public string AdditionalServices { get; set; }

    [JsonProperty("qualification")]
    public string Qualification { get; set; }

    [JsonProperty("pa_contact_no")]
    public string PaContactNo { get; set; }

    [JsonProperty("languages_known")]
    public string LanguagesKnown { get; set; }

    [JsonProperty("alter_contact_no")]
    public string AlterContactNo { get; set; }

    [JsonProperty("hospital_address")]
    public string HospitalAddress { get; set; }

    [JsonProperty("available_time")]
    public string AvailableTime { get; set; }

    [JsonProperty("medical_council")]
    public string MedicalCouncil { get; set; }

    [JsonProperty("contact_person")]
    public string ContactPerson { get; set; }

    [JsonProperty("prefereble_fees")]
    public object PreferebleFees { get; set; }

    [JsonProperty("other_service_list")]
    public string OtherServiceList { get; set; }

    [JsonProperty("emergency_service")]
    public string EmergencyService { get; set; }

    [JsonProperty("other_service")]
    public string OtherService { get; set; }

    [JsonProperty("prefer_mode")]
    public string PreferMode { get; set; }

    [JsonProperty("contact_no")]
    public string ContactNo { get; set; }

    [JsonProperty("certificates")]
    public string Certificates { get; set; }

    [JsonProperty("doctor_contact_no")]
    public string DoctorContactNo { get; set; }

    [JsonProperty("website")]
    public string Website { get; set; }

    [JsonProperty("signature")]
    public string Signature { get; set; }

    [JsonProperty("status")]
    public string Status { get; set; }

    [JsonProperty("call_status")]
    public string CallStatus { get; set; }

    [JsonProperty("chat_status")]
    public string ChatStatus { get; set; }

    [JsonProperty("online_status")]
    public string OnlineStatus { get; set; }

    [JsonProperty("ios_UDID")]
    public string IosUDID { get; set; }

    [JsonProperty("ios_badge")]
    public string IosBadge { get; set; }

    [JsonProperty("android_UDID")]
    public object AndroidUDID { get; set; }

    [JsonProperty("last_visit")]
    public object LastVisit { get; set; }

    [JsonProperty("from_app")]
    public string FromApp { get; set; }

    [JsonProperty("for_call")]
    public object ForCall { get; set; }

    [JsonProperty("doctors_type")]
    public string DoctorsType { get; set; }

    [JsonProperty("call_price")]
    public string CallPrice { get; set; }

    [JsonProperty("chat_price")]
    public string ChatPrice { get; set; }

    [JsonProperty("mail_price")]
    public string MailPrice { get; set; }

    [JsonProperty("week_timing")]
    public string WeekTiming { get; set; }
}

public class Speciality
{
    [JsonProperty("id")]
    public string Id { get; set; }

    [JsonProperty("name")]
    public string Name { get; set; }

    [JsonProperty("slug")]
    public string Slug { get; set; }

    [JsonProperty("image")]
    public string Image { get; set; }

    [JsonProperty("description")]
    public string Description { get; set; }

    [JsonProperty("status")]
    public string Status { get; set; }

    [JsonProperty("created")]
    public string Created { get; set; }

    [JsonProperty("modified")]
    public string Modified { get; set; }
}

public class Success
{
    [JsonProperty("User")]
    public User User { get; set; }

    [JsonProperty("Speciality")]
    public Speciality Speciality { get; set; }
}

public class Status
{
    [JsonProperty("success")]
    public IList<Success> Success { get; set; }
}

public class Response
{
    [JsonProperty("status")]
    public Status Status { get; set; }
}


Afzaal Ahmad Zeeshan

5ед.

Рейтинг:
1

F-ES Sitecore

RootObject имеет свойство Status с массивом элементов Success, поэтому их может быть несколько, Мы не можем видеть JSON. Предполагая, что есть хотя бы один, то ниже будет использоваться первый

tmp.Status.Success[0].User


Если бы вы хотели получить доступ ко всем из них, то вы бы сделали цикл вокруг всех объектов успеха.

Вышеизложенное будет работать только в том случае, если JSON действителен и заполнен, вы не опубликовали JSON, поэтому мы не знаем, так ли это, поэтому утверждение, что приведенный выше код "не работает", не дает никому достаточной информации, чтобы помочь вам.


Nishisansi

Я опубликовал свой JSON-файл выше. Я думаю, вы бы этого не увидели.
В любом случае это мой Json,
http://www.mywedjat.com/services/apis/get_doctor?id=2

Afzaal Ahmad Zeeshan

5ед.