protected override object DeserializeObject(ArraySegment <byte> value) { using (var ms = new MemoryStream(value.Array, value.Offset, value.Count, writable: false)) using (var tr = new StreamReader(ms)) using (var jr = new Newtonsoft.Json.JsonTextReader(tr)) { jr.Read(); if (jr.TokenType == JsonToken.StartArray) { // read type var typeName = jr.ReadAsString(); var type = readCache.GetOrAdd(typeName, x => Type.GetType(x, throwOnError: true)); // Get type or Register type // read object jr.Read(); var deserializedValue = jsonSerializer.Deserialize(jr, type); return(deserializedValue); } else { throw new InvalidDataException("JsonTranscoder only supports [\"TypeName\", object]"); } } }
private static string NewtonsoftDecode(string input) { var sr = new StringReader(input); var reader = new JsonTextReader(sr); var output = reader.ReadAsString(); reader.Close(); return output; }
public void TestDecodeNamedEntities () { var path = Path.Combine ("..", "..", "TestData", "html", "HtmlEntities.json"); var decoder = new HtmlEntityDecoder (); using (var json = new JsonTextReader (new StreamReader (path))) { while (json.Read ()) { string name, value; if (json.TokenType == JsonToken.StartObject) continue; if (json.TokenType != JsonToken.PropertyName) break; name = (string) json.Value; if (!json.Read () || json.TokenType != JsonToken.StartObject) break; // read to the "codepoints" property if (!json.Read () || json.TokenType != JsonToken.PropertyName) break; // skip the array of integers... if (!json.Read () || json.TokenType != JsonToken.StartArray) break; while (json.Read ()) { if (json.TokenType == JsonToken.EndArray) break; } // the property should be "characters" - this is what we want if (!json.Read () || json.TokenType != JsonToken.PropertyName) break; value = json.ReadAsString (); if (!json.Read () || json.TokenType != JsonToken.EndObject) break; for (int i = 0; i < name.Length && name[i] != ';'; i++) Assert.IsTrue (decoder.Push (name[i]), "Failed to push char #{0} of \"{1}\".", i, name); Assert.AreEqual (value, decoder.GetValue (), "Decoded entity did not match for \"{0}\".", name); decoder.Reset (); } } }
void ReadConfidence(JsonTextReader reader, Dictionary<string, double> wordConfidences) { reader.Read(); reader.Read(); if (reader.TokenType != JsonToken.EndArray) { while (true) { var wordText = reader.ReadAsString(); var conf = reader.ReadAsDouble(); wordConfidences[wordText] = conf.Value; reader.Read(); var tok1 = reader.TokenType; reader.Read(); var tok2 = reader.TokenType; if (tok1 == JsonToken.EndArray && tok2 == JsonToken.EndArray) { break; } } } }
public void ReadStringValue_CommaErrors_Multiple() { JsonTextReader reader = new JsonTextReader(new StringReader("['',,'']")); reader.Read(); reader.ReadAsInt32(); ExceptionAssert.Throws<JsonReaderException>(() => { reader.ReadAsString(); }, "Unexpected character encountered while parsing value: ,. Path '[1]', line 1, position 5."); Assert.AreEqual(string.Empty, reader.ReadAsString()); Assert.IsTrue(reader.Read()); }
/// <summary> /// Returns an EliteStation from a EDDB Json Object. /// JsonReader MUST currently point to the StartObject token for the Station object. /// </summary> /// <param name="jsonReader">JsonReader populated with the Station Object</param> /// <returns>Populated EliteStation data</returns> private EliteStation _ParseJsonStation(JsonTextReader jsonReader) { EliteStation es = new EliteStation(); if (jsonReader.TokenType != JsonToken.StartObject) AerDebug.LogError("Malformed JSON parsing - _ParseJsonStation must be called on a StartObject token"); while(jsonReader.TokenType != JsonToken.EndObject) { jsonReader.Read(); switch(jsonReader.TokenType) { case JsonToken.PropertyName: switch(jsonReader.Value.ToString()) { case "id": es.id = jsonReader.ReadAsInt32().GetValueOrDefault(); break; case "name": es.Name = jsonReader.ReadAsString(); break; case "system_id": es.System = GetSystem(jsonReader.ReadAsInt32().GetValueOrDefault()); break; case "max_landing_pad_size": es.MaxPadSize = jsonReader.ReadAsString(); break; case "distance_to_star": es.DistanceFromStar = jsonReader.ReadAsInt32().GetValueOrDefault(); break; case "faction": es.Faction = jsonReader.ReadAsString(); break; case "government": es.Government = jsonReader.ReadAsString(); break; case "allegiance": es.Allegiance = jsonReader.ReadAsString(); break; case "state": es.State = jsonReader.ReadAsString(); break; case "type": es.StarportType = jsonReader.ReadAsString(); break; case "has_blackmarket": es.HasBlackmarket = (jsonReader.ReadAsInt32().GetValueOrDefault() == 1); break; case "has_commodities": es.HasCommodities = (jsonReader.ReadAsInt32().GetValueOrDefault() == 1); break; case "has_refuel": es.HasRefuel = (jsonReader.ReadAsInt32().GetValueOrDefault() == 1); break; case "has_repear": es.HasRepair = (jsonReader.ReadAsInt32().GetValueOrDefault() == 1); break; case "has_rearm": es.HasRearm = (jsonReader.ReadAsInt32().GetValueOrDefault() == 1); break; case "has_outfitting": es.HasOutfitting = (jsonReader.ReadAsInt32().GetValueOrDefault() == 1); break; case "has_shipyard": es.HasShipyard = (jsonReader.ReadAsInt32().GetValueOrDefault() == 1); break; case "import_commodities": jsonReader.Read(); es.Imports = _ParseJsonCommodities(jsonReader); break; case "export_commodities": jsonReader.Read(); es.Exports = _ParseJsonCommodities(jsonReader); break; case "prohibited_commodities": jsonReader.Read(); es.Prohibited = _ParseJsonCommodities(jsonReader); break; case "economies": jsonReader.Read(); es.Economies = _ParseJsonEconomies(jsonReader); break; case "updated_at": es.UpdatedAt = jsonReader.ReadAsInt32().GetValueOrDefault(); break; case "listings": jsonReader.Read(); es.Listings = _ParseJsonListing(jsonReader); break; default: break; } break; case JsonToken.EndObject: break; } } return es; }
public async Task<bool> GetUserDataAsync() { IsLoading = true; String strContent = await ViewModelLocator.Client.MakeOperationAsync(SupportedModules.USER, SupportedMethods.GetUserData); if (strContent != "") { User connectedUser = JsonConvert.DeserializeObject<User>(strContent); StringReader str = new StringReader(strContent); String institution = ""; String platform = ""; JsonTextReader reader = new JsonTextReader(str); while (reader.Read()) { if (reader.Value != null) { switch (reader.Value.ToString()) { case "institutionName": institution = reader.ReadAsString(); break; case "platformName": platform = reader.ReadAsString(); break; default: continue; } } } reader.Close(); str.Close(); Settings.UserSetting.setUser(connectedUser); Settings.InstituteSetting = institution; Settings.PlatformSetting = platform; IsLoading = false; return true; } IsLoading = false; return false; }
public Dictionary<int, string> GetMonsterSprite() { // 스프라이트 데이터 읽어오기 Dictionary<int, string> spriteNames = new Dictionary<int, string>(); try { string resourcePathTable = File.ReadAllText(Properties.Settings.Default.ResourcePathTablePath); JsonTextReader reader = new JsonTextReader(new StringReader(resourcePathTable)); int key = 0; while (reader.Read()) { if (reader.TokenType == JsonToken.PropertyName) { if ((string)reader.Value == "Index") { key = Convert.ToInt32(reader.ReadAsInt32()); spriteNames.Add(key, null); } else if ((string)reader.Value == "Path") spriteNames[key] = reader.ReadAsString(); } } } catch (IOException ioe) { mInfoPath.resourcePathTable = false; throw ioe; } catch (ArgumentException) { mInfoPath.resourcePathTable = false; throw new IOException(); } catch (Exception) { } return spriteNames; }
private void GetMonsterInfo(string stage, Dictionary<int, string> spriteNames, List<MonsterInfo> monsterInfos) { JsonTextReader reader; MonsterInfo tmpInfo; var monsterTable = ""; // 몬스터 데이터 읽어오기 if (stage == "Common") monsterTable = File.ReadAllText(Path.Combine(Properties.Settings.Default.MonsterTablePath, Properties.Settings.Default.MonsterTableExportName + "_" + stage + ".json")); else monsterTable = File.ReadAllText(Path.Combine(Properties.Settings.Default.MonsterTablePath, Properties.Settings.Default.StageMonsterTablePath, Properties.Settings.Default.MonsterTableExportName + "_" + stage + ".json")); /*JsonTextReader*/ reader = new JsonTextReader(new StringReader(monsterTable)); int cnt = 0; /*MonsterInfo*/ tmpInfo = new MonsterInfo(); while (reader.Read()) { if (reader.TokenType == JsonToken.PropertyName) switch ((string)reader.Value) { case "Index": if (cnt > 0) monsterInfos.Add(tmpInfo); cnt++; tmpInfo.index = Convert.ToInt32(reader.ReadAsInt32()); break; case "Stage": tmpInfo.stage = reader.ReadAsString(); break; case "Type": try { tmpInfo.type = //reader.ReadAsString(); Enum.GetName(typeof(MonsterType), Convert.ToInt32(reader.ReadAsInt32())); } catch (ArgumentException) { tmpInfo.type = "NONE"; } break; case "Monster_Sprite": int tmpIndex = Convert.ToInt32(reader.ReadAsInt32()); if (spriteNames.ContainsKey(tmpIndex)) tmpInfo.sprite = spriteNames[tmpIndex]; else tmpInfo.sprite = ""; break; case "MonsterExp": tmpInfo.exp = Convert.ToInt32(reader.ReadAsInt32()); break; case "MonsterPoint": tmpInfo.point = Convert.ToInt32(reader.ReadAsInt32()); break; case "MonsterMinGold": tmpInfo.goldMin = Convert.ToInt32(reader.ReadAsInt32()); break; case "MonsterMaxGold": tmpInfo.goldMax = Convert.ToInt32(reader.ReadAsInt32()); break; case "MonsterHP": tmpInfo.HP = Convert.ToInt32(reader.ReadAsInt32()); break; case "MonsterPAtk": tmpInfo.atk = Convert.ToInt32(reader.ReadAsInt32()); break; case "Speed": tmpInfo.speed = Convert.ToDouble(reader.ReadAsString()) / Properties.Settings.Default.PermilFactor; break; case "MonsterScale": tmpInfo.scale = Convert.ToDouble(reader.ReadAsString()) / Properties.Settings.Default.PermilFactor; // 타입/스케일 정보로 색깔값 지정 tmpInfo.color = Globals.IG_PlanAddIn.GetMonsterTypeColor(tmpInfo.type, tmpInfo.scale); break; default: break; } } // 마지막 인덱스 몬스터 추가 if (tmpInfo.index > 0) monsterInfos.Add(tmpInfo); }
public void LoginUser(string username, string password) { string json = ParamsToJSON ("username", username, "password", password); SayHiRestClient syrc = new SayHiRestClient (SayHiRestClient.HTTPPOSTMETHOD, CreateEndpointURL (LoginUserPath), json); syrc.OnRestCallCompleted += (RestResult obj) => { UserModel ret = null; if (!obj.IsSuccess) { ret = new UserModel (obj.IsSuccess, obj.Result); } else { try { ret = new UserModel (true); using (JsonTextReader jtr = new JsonTextReader(new StringReader(obj.Result))) { // JsonIndexer idx = new JsonIndexer (jtr); // ret.DOBRaw = idx ["dob"]; // ret.EmailAddress = idx ["email"]; // ret.ID = idx ["id"]; // ret.LastName = idx ["lastName"]; while (jtr.Read()) { if (JsonKeyMatches (jtr, JsonToken.PropertyName, "email")) { ret.EmailAddress = jtr.ReadAsString (); } else if (JsonKeyMatches (jtr, JsonToken.PropertyName, "firstName")) { ret.FirstName = jtr.ReadAsString (); } else if (JsonKeyMatches (jtr, JsonToken.PropertyName, "lastName")) { ret.LastName = jtr.ReadAsString (); } else if (JsonKeyMatches (jtr, JsonToken.PropertyName, "id")) { ret.ID = jtr.ReadAsString (); } } ret.InterestOne = SayHiBootStrapper.GenerateMockInterest (); ret.InterestTwo = SayHiBootStrapper.GenerateMockInterest (ret.InterestOne ?? ""); } } catch (Exception e) { ret = new UserModel (false, GenerateParseErrorMessage (e)); } } SafeRaiseEvent (OnRegisterUserCompleted, ret); }; syrc.SendRestRequest (); }
public void NonAsciiStringEscapeHandling() { StringWriter sw = new StringWriter(); JsonTextWriter writer = new JsonTextWriter(sw) { StringEscapeHandling = StringEscapeHandling.EscapeNonAscii }; string unicode = "\u5f20"; writer.WriteValue(unicode); string json = sw.ToString(); Assert.AreEqual(8, json.Length); Assert.AreEqual(@"""\u5f20""", json); JsonTextReader reader = new JsonTextReader(new StringReader(json)); Assert.AreEqual(unicode, reader.ReadAsString()); sw = new StringWriter(); writer = new JsonTextWriter(sw) { StringEscapeHandling = StringEscapeHandling.Default }; writer.WriteValue(unicode); json = sw.ToString(); Assert.AreEqual(3, json.Length); Assert.AreEqual("\"\u5f20\"", json); }
public void HtmlStringEscapeHandling() { StringWriter sw = new StringWriter(); JsonTextWriter writer = new JsonTextWriter(sw) { StringEscapeHandling = StringEscapeHandling.EscapeHtml }; string script = @"<script type=""text/javascript"">alert('hi');</script>"; writer.WriteValue(script); string json = sw.ToString(); Assert.AreEqual(@"""\u003cscript type=\u0022text/javascript\u0022\u003ealert(\u0027hi\u0027);\u003c/script\u003e""", json); JsonTextReader reader = new JsonTextReader(new StringReader(json)); Assert.AreEqual(script, reader.ReadAsString()); }
public void ReadAsString_Null_UnexpectedEnd() { string json = @"nul"; JsonTextReader reader = new JsonTextReader(new StringReader(json)); ExceptionAssert.Throws<JsonReaderException>(() => { reader.ReadAsString(); }, "Unexpected end when reading JSON. Path '', line 1, position 3."); }
public void ReadAsString_BadData() { string json = @"pie"; JsonTextReader reader = new JsonTextReader(new StringReader(json)); ExceptionAssert.Throws<JsonReaderException>(() => { reader.ReadAsString(); }, "Unexpected character encountered while parsing value: p. Path '', line 1, position 1."); }
public void ReadAsString_Null_AdditionalBadData() { string json = @"nullllll"; JsonTextReader reader = new JsonTextReader(new StringReader(json)); ExceptionAssert.Throws<JsonReaderException>(() => { reader.ReadAsString(); }, "Error parsing null value. Path '', line 1, position 4."); }
public static void Main (string[] args) { int maxEntityLength = 0; int state = 0; using (var json = new JsonTextReader (new StreamReader ("HtmlEntities.json"))) { while (json.Read ()) { string name, value; if (json.TokenType == JsonToken.StartObject) continue; if (json.TokenType != JsonToken.PropertyName) break; name = (string) json.Value; // trim leading '&' and trailing ';' name = name.TrimStart ('&').TrimEnd (';'); if (!json.Read () || json.TokenType != JsonToken.StartObject) break; // read to the "codepoints" property if (!json.Read () || json.TokenType != JsonToken.PropertyName) break; // skip the array of integers... if (!json.Read () || json.TokenType != JsonToken.StartArray) break; while (json.Read ()) { if (json.TokenType == JsonToken.EndArray) break; } // the property should be "characters" - this is what we want if (!json.Read () || json.TokenType != JsonToken.PropertyName) break; value = json.ReadAsString (); var node = Root; for (int i = 0; i < name.Length; i++) { bool found = false; for (int j = 0; j < node.Children.Count; j++) { if (node.Children[j].Char == name[i]) { node = node.Children[j]; found = true; break; } } if (!found) { node = new GraphNode (node, ++state, name[i]); continue; } } if (node.Value == null) { FinalStates.Add (node.State, node); node.Value = value; } maxEntityLength = Math.Max (maxEntityLength, name.Length); if (!json.Read () || json.TokenType != JsonToken.EndObject) break; } } using (var output = new StreamWriter ("HtmlEntityDecoder.g.cs")) { output.WriteLine ("// WARNING: This file is auto-generated. DO NOT EDIT!"); output.WriteLine (); output.WriteLine ("namespace HtmlKit {"); output.WriteLine ("\tpublic partial class HtmlEntityDecoder {"); output.WriteLine ("\t\tconst int MaxEntityLength = {0};", maxEntityLength); output.WriteLine (); GeneratePushNamedEntityMethod (output); output.WriteLine (); GenerateGetNamedEntityValueMethod (output); output.WriteLine ("\t}"); output.WriteLine ("}"); } }
public void RegisterUser(string username, string password, string firstName, string lastName, string emailAddress, string dob = "", string summary = "awesome summery", string interest1 = "", string interest2 = "", string interest3 = "") { string json = ParamsToJSON ("dob", dob, "summary", summary, "user", SayHiHelper.JSONBeginObject, "email", emailAddress, "first_name", firstName, "last_name", lastName, "username", username, "password", password, SayHiHelper.JSONEndObject); SayHiRestClient syrc = new SayHiRestClient (SayHiRestClient.HTTPPOSTMETHOD, CreateEndpointURL (RegisterUserPath), json); syrc.OnRestCallCompleted += (RestResult obj) => { UserModel ret = null; if (!obj.IsSuccess) { ret = new UserModel (obj.IsSuccess, obj.Result); } else { try { ret = new UserModel (true); using (JsonTextReader jtr = new JsonTextReader(new StringReader(obj.Result))) { while (jtr.Read()) { if (JsonKeyMatches (jtr, JsonToken.PropertyName, "id")) { ret.ID = jtr.ReadAsString (); break;//only parsing ID } } } //TODO:parse other fields ret.FirstName = firstName; ret.LastName = lastName; ret.EmailAddress = emailAddress; ret.DOBRaw = dob; ret.Summary = summary; ret.InterestOne = interest1; ret.InterestTwo = interest2; ret.InterestThree = interest3; } catch (Exception e) { ret = new UserModel (false, GenerateParseErrorMessage (e)); } } SafeRaiseEvent (OnRegisterUserCompleted, ret); }; syrc.SendRestRequest (); }
public void MatchUser(string userId, string eventCode) { string json = ParamsToJSON ("userid", userId, "event_code", eventCode); SayHiRestClient syrc = new SayHiRestClient (SayHiRestClient.HTTPPOSTMETHOD, CreateEndpointURL (MatchUserPath), json); syrc.OnRestCallCompleted += (RestResult obj) => { UserModel ret = null; if (!obj.IsSuccess) { ret = new UserModel (obj.IsSuccess, obj.Result); } else { try { ret = new UserModel (true); using (JsonTextReader jtr = new JsonTextReader(new StringReader(obj.Result))) { while (jtr.Read()) { if (JsonKeyMatches (jtr, JsonToken.PropertyName, "matchName")) { string name = jtr.ReadAsString (); if (name != null) { string[] vals = name.Split (' '); ret.FirstName = vals [0]; if (vals.Length > 1) { ret.LastName = vals [1]; } } } else if (JsonKeyMatches (jtr, JsonToken.PropertyName, "matchSummary")) { ret.Summary = jtr.ReadAsString (); } else if (JsonKeyMatches (jtr, JsonToken.PropertyName, "username")) { ret.Summary = jtr.ReadAsString (); } } ret.InterestOne = SayHiBootStrapper.GenerateMockInterest (); ret.InterestTwo = SayHiBootStrapper.GenerateMockInterest (ret.InterestOne); } } catch (Exception e) { ret = new UserModel (false, GenerateParseErrorMessage (e)); } } SafeRaiseEvent (OnMatchUserCompleted, ret); }; syrc.SendRestRequest (); }
public void HtmlStringEscapeHandling() { StringWriter sw = new StringWriter(); JsonTextWriter writer = new JsonTextWriter(sw) { StringEscapeHandling = StringEscapeHandling.EscapeHtml }; string script = @"<script type=""text/javascript"">alert('hi');</script>"; writer.WriteValue(script); string json = sw.ToString(); Assert.AreEqual(@"""\u003cscript type=\u0022text/javascript\u0022\u003ealert(\u0027hi\u0027);\u003c/script\u003e""", json); JsonTextReader reader = new JsonTextReader(new StringReader(json)); Assert.AreEqual(script, reader.ReadAsString()); //Console.WriteLine(HttpUtility.HtmlEncode(script)); //System.Web.Script.Serialization.JavaScriptSerializer s = new System.Web.Script.Serialization.JavaScriptSerializer(); //Console.WriteLine(s.Serialize(new { html = script })); }
/// <summary> /// This function will parse the device parameters from a device descriptor json file using Newstonsoft /// /// Returns a DeviceDescriptor object containing stored json values. /// </summary> public static DeviceDescriptor Parse(string deviceDescriptorJson) { if (deviceDescriptorJson == null) { throw new ArgumentNullException("deviceDescriptorJson"); } //create a device descriptor object for storing the parsed json in an object DeviceDescriptor deviceDescriptor; JsonTextReader reader; reader = new JsonTextReader(new StringReader(deviceDescriptorJson)); if (reader != null) { deviceDescriptor = new DeviceDescriptor(); } else { Debug.LogError("No Device Descriptor detected."); return null; } //parsey while (reader.Read()) { if (reader.Value != null && reader.ValueType == typeof(String)) { string parsedJson = reader.Value.ToString().ToLower(); switch (parsedJson) { case "vendor": deviceDescriptor.Vendor = reader.ReadAsString(); break; case "model": deviceDescriptor.Model = reader.ReadAsString(); break; case "version": deviceDescriptor.Version = reader.ReadAsString(); break; case "num_displays": deviceDescriptor.NumDisplays = int.Parse(reader.ReadAsString()); break; case "note": deviceDescriptor.Note = reader.ReadAsString(); break; case "monocular_horizontal": deviceDescriptor.MonocularHorizontal = float.Parse(reader.ReadAsString()); break; case "monocular_vertical": deviceDescriptor.MonocularVertical = float.Parse(reader.ReadAsString()); break; case "overlap_percent": deviceDescriptor.OverlapPercent = float.Parse(reader.ReadAsString()); break; case "pitch_tilt": deviceDescriptor.PitchTilt = float.Parse(reader.ReadAsString()); break; case "width": deviceDescriptor.Width = int.Parse(reader.ReadAsString()); break; case "height": deviceDescriptor.Height = int.Parse(reader.ReadAsString()); break; case "video_inputs": deviceDescriptor.VideoInputs = int.Parse(reader.ReadAsString()); break; case "display_mode": deviceDescriptor.DisplayMode = reader.ReadAsString(); break; case "swapeyes": deviceDescriptor.SwapEyes = int.Parse(reader.ReadAsString()); break; case "k1_red": deviceDescriptor.K1Red = float.Parse(reader.ReadAsString()); break; case "k1_green": deviceDescriptor.K1Green = float.Parse(reader.ReadAsString()); break; case "k1_blue": deviceDescriptor.K1Blue = float.Parse(reader.ReadAsString()); break; case "right_roll": deviceDescriptor.RightRoll = float.Parse(reader.ReadAsString()); break; case "left_roll": deviceDescriptor.LeftRoll = float.Parse(reader.ReadAsString()); break; case "center_proj_x": deviceDescriptor.CenterProjX = float.Parse(reader.ReadAsString()); break; case "center_proj_y": deviceDescriptor.CenterProjY = float.Parse(reader.ReadAsString()); break; case "rotate_180": deviceDescriptor.Rotate180 = int.Parse(reader.ReadAsString()); break; } } } return deviceDescriptor; }
public void Read(JsonTextReader reader) { this.Entry = new Entry(); reader.Read(); // startObject reader.Read(); // property name this.Entry.Name = reader.ReadAsString(); reader.Read(); // property name this.Entry.Value = reader.ReadAsString(); }
public void GetEventInfo(string eventCode) { string json = ParamsToJSON ("event_code", eventCode ?? string.Empty); SayHiRestClient syrc = new SayHiRestClient (SayHiRestClient.HTTPPOSTMETHOD, CreateEndpointURL (GetEventInfoPath), json); syrc.OnRestCallCompleted += (RestResult obj) => { Event ret = null; if (!obj.IsSuccess) { ret = new Event (obj.IsSuccess, obj.Result); } else { try { ret = new Event (true); using (JsonTextReader jtr = new JsonTextReader(new StringReader(obj.Result))) { while (jtr.Read()) { if (JsonKeyMatches (jtr, JsonToken.PropertyName, "address")) { ret.Address = jtr.ReadAsString (); } else if (JsonKeyMatches (jtr, JsonToken.PropertyName, "date")) { ret.Date = jtr.ReadAsString (); } else if (JsonKeyMatches (jtr, JsonToken.PropertyName, "end_time")) { ret.EndTime = jtr.ReadAsString (); } else if (JsonKeyMatches (jtr, JsonToken.PropertyName, "event_code")) { ret.Code = jtr.ReadAsString (); } else if (JsonKeyMatches (jtr, JsonToken.PropertyName, "name")) { ret.Name = jtr.ReadAsString (); } else if (JsonKeyMatches (jtr, JsonToken.PropertyName, "start_time")) { ret.StartTime = jtr.ReadAsString (); } else if (JsonKeyMatches (jtr, JsonToken.PropertyName, "summary")) { ret.Summary = jtr.ReadAsString (); } else if (JsonKeyMatches (jtr, JsonToken.PropertyName, "venue")) { ret.Venue = jtr.ReadAsString (); } else if (JsonKeyMatches (jtr, JsonToken.PropertyName, "organizer")) { ret.Organizer = jtr.ReadAsString (); } } } } catch (Exception e) { ret = new Event (false, GenerateParseErrorMessage (e)); } } SafeRaiseEvent (OnGetEventInfoCompleted, ret); }; syrc.SendRestRequest (); }