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

как десеариализовать такой json в c#

{"response":[64,{"pid":"114272714","aid":"33565378",
"owner_id":"5005272","created":"1214309659","text":"test",
"src":"http:\/\/cs1437.vkontakte.ru\/u5005272\/33565378\/m_2a07b7cb.jpg",
"src_big":"http:\/\/cs1437.vkontakte.ru\/u5005272\/33565378\/x_5769a2b7.jpg",
"src_small":"http:\/\/cs1437.vkontakte.ru\/u5005272\/33565378\/s_beb1d458.jpg"}]}


public class UserPhotos
{
public Int32 pid { get; set; }
public Int32 aid { get; set; }
public Int32 owner_id { get; set; }
public Int32 created { get; set; }
public string text { get; set; }
public string src { get; set; }
public string src_big { get; set; }
public string src_small { get; set; }
}

public class vkUserPhotos
{
public List response { get; set; }
}

сейчас я вырезаю первый элемент, и десеареилизую в такую штуку
System.Web.Script.Serialization.JavaScriptSerializer oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string oList = oSerializer.Deserialize(json);
  • Вопрос задан
  • 8254 просмотра
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
retran
@retran
Ответ написан
Комментировать
taliban
@taliban
php программист
Зачем сеарилизовать строку? Сеалилизация ведь подразумевает перевод обьектов в строку.
Ответ написан
AxisPod
@AxisPod
Хм, а погуглить не судьба? «json c#» дает хорошие результаты.
Ответ написан
Fr3nzy
@Fr3nzy
Попробуйте james.newtonking.com/projects/json-net.aspx
Использовал уже несколько раз, и, в целом, вроде неплохо :)
Ответ написан
Комментировать
@rPman
Вот примитивный json decoder (даже два), осторожно быдлокод, но хорошо коментированный, писал для того чтобы не таскать с собой тяжелые 'правильные' проекты json (плюс не требует новых версий .net, Будет работать чуть ли не с 1.1, в т.ч. mono), требует допиливания обработки ошибок синтакса и т.п. (читать todo: в коментарих).
pastebin.com/5jJsVs39

Первый метод SimpleJSON::pairsParseJSON(string) — возвращает одноуровневый Dictionary<string, string>, каждая запись — элементы-листья в дереве json, ключи — составное имя элементов, разделенное точкой (массивы именуются через '[индекс]'), например:
{test:[{a:1,b:'asd'},123]}

выдаст массив:
«test[0].a» => «1»
«test[0].b» => «asd»
«test[1]» => «123»
p.s. этот метод очень удобен при работе со сложными структурами json без массивов

Второй метод SimpleJSON::treeParseJSON(string) — вернет классический многоуровневый словарь Dictionary<string, object>, где в качестве object может быть либо строка, либо число, либо другой словарь.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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