Задать вопрос

Как десериализовать данный JSON C#?

Привет всем
Есть класс :
public class vkResponse
    {
        [JsonProperty(PropertyName = "id")]
        public int Uid { get; set; }
 
        [JsonProperty(PropertyName = "first_name")]
        public string FirstName { get; set; }
 
        [JsonProperty(PropertyName = "last_name")]
        public string LastName { get; set; }
 
        [JsonProperty(PropertyName = "city")]
        public string City { get; set; }
 
        [JsonProperty(PropertyName = "photo_50")]
        public Uri PhotoUri { get; set; }
 
        [JsonProperty(PropertyName = "online")]
        [JsonConverter(typeof(BoolConverter))]
        public bool IsOnline { get; set; }
 
        [JsonProperty(PropertyName = "lists")]
        public List<int> Lists { get; set; }
    }
    public class BoolConverter : JsonConverter
    {
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            writer.WriteValue(((bool)value) ? 1 : 0);
        }
 
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            return reader.Value.ToString() == "1";
        }
        public override bool CanConvert(Type objectType)
        {
            return objectType == typeof(bool);
        }
    }

Использую :
var req = new HttpRequest();
            string resp = req.Get("https://api.vk.com/method/users.get?user_ids=1&fields=photo_50,city,verified").ToString();
            JObject o = JObject.Parse(resp);
            JArray array = (JArray)o["response"];
            var v = JsonConvert.DeserializeObject<vkResponse>(array.First().ToString());
            richTextBox1.Text = v.FirstName + " " + v.LastName + " " + v.PhotoUri;

Все хорошо с именем , ид , фамилии. Но не понимаю как попасть в City ?
Сейчас если запустить , то возвращает
Павел Дуров http://cs9591.vk.me/v9591001/74/bGqB3eciXRc.jpg 2

Как сделать так , что бы можно было вместо двойки , получать отдельные свойства id и title ?
Спасибо заранее.
  • Вопрос задан
  • 2858 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@smozhaykin
В документации же все русским по белому написано:

city идентификатор города, указанного на странице пользователя в разделе «Контакты». Возвращается id города, который можно использовать для получения его названия с помощью метода database.getCitiesById. Если город не указан, или основная информация страницы скрыта настройками приватности, возвращается 0.

В вашем случае нужен еще один запрос: https://api.vk.com/method/database.getCitiesById?c...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы