public static void Deserialise(this PageInfo pageInfo, JsonReader reader) { if (reader.Read() && reader.State == TJsonReaderState.Object) { //Link link = null; while (reader.Read() && reader.State != TJsonReaderState.EndObject) { switch (reader.State) { case TJsonReaderState.Member: string elementName = reader.Text; reader.Read(); int value; if (int.TryParse(reader.Text, out value)) { switch (elementName) { case "TotalCount": pageInfo.TotalCount = value; break; case "ItemsCount": pageInfo.ItemsCount = value; break; case "StartIndex": pageInfo.StartIndex = value; break; } } break; default: break; } } } }
public static void Deserialise(this List<Link> links, JsonReader reader) { if (reader.Read() && reader.State == TJsonReaderState.Array) { Link link = null; while (reader.Read() && reader.State != TJsonReaderState.EndArray) { switch (reader.State) { case TJsonReaderState.Object: link = new Link(); links.Add(link); break; case TJsonReaderState.Member: string attribute = reader.Text; reader.Read(); if (string.Compare(attribute, "rel", true) == 0) link.rel = reader.Text; else if (string.Compare(attribute, "href", true) == 0) link.href = reader.Text; else throw new NotSupportedException("Unsupported attribute: " + attribute); break; default: break; } } } }