public bool FinishArrayItem() { if (ContentTable.Count > 1) { return(Program.ReportFailure("Unexpected failure")); } Debug.Assert(ContentTypeTable.Count == ContentTable.Count); foreach (KeyValuePair <string, object> Entry in ContentTable) { string Key = Entry.Key; Debug.Assert(ContentTypeTable.ContainsKey(Key)); if (ItemCollection.Count > 0) { if (ContentTypeTable[Key] != LastItemType) { return(Program.ReportFailure("Mixed array types")); } } ItemCollection.Add(Entry.Value); LastItemType = ContentTypeTable[Key]; } ContentTable.Clear(); ContentTypeTable.Clear(); return(true); }
public bool SetContent(string key, object?value, Json.Token jsonType) { if (ContentTable.ContainsKey(key)) { return(Program.ReportFailure($"Key '{key}' already parsed for object")); } Debug.Assert(!ContentTypeTable.ContainsKey(key)); ContentTable.Add(key, value !); ContentTypeTable.Add(key, jsonType); return(true); }
public bool FinishArray(string key, ParsingContext arrayContext) { if (ContentTable.ContainsKey(key)) { return(Program.ReportFailure($"Key '{key}' already parsed for object")); } Debug.Assert(!ContentTypeTable.ContainsKey(key)); ContentTable.Add(key, arrayContext.ItemCollection); ContentTypeTable.Add(key, arrayContext.LastItemType); return(true); }