private static JsonObject ParseANTLRStream(ANTLRStringStream inputStream) { var lexer = new JsonLexer(inputStream); var tokens = new CommonTokenStream(lexer); var parser = new JsonParser(tokens); var parseTree = parser.@object().Tree; var stream = new CommonTreeNodeStream(parseTree); var tree = new JsonTree(stream); var @object = tree.@object(); Contract.Assume(@object != null); return(new JsonObject(JsonValueTypes.Interpret(@object))); }
public override JsonValue GetValue(object value) { var other = (System.Collections.IEnumerable)value; var listOfKvps = new List <KeyValuePair <string, object> >(); foreach (var item in other) { var key = item.GetType().GetProperty("Key").GetValue(item, null).ToString(); var val = item.GetType().GetProperty("Value").GetValue(item, null); listOfKvps.Add(new KeyValuePair <string, object>(key, val)); } return(new JsonObject(JsonValueTypes.Interpret(listOfKvps))); }
public static JsonArray Parse(string s) { var inputStream = new ANTLRStringStream(s); var lexer = new JsonLexer(inputStream); var tokens = new CommonTokenStream(lexer); var parser = new JsonParser(tokens); var parseTree = parser.array().Tree; var stream = new CommonTreeNodeStream(parseTree); var tree = new JsonTree(stream); var @object = tree.array(); Contract.Assume(@object != null); return(new JsonArray(JsonValueTypes.Interpret(@object))); }
public override bool TrySetMember(SetMemberBinder binder, object value) { this[binder.Name] = value is JsonValue ? (JsonValue)value : JsonValueTypes.Interpret(value); return(true); }
public override JsonValue GetValue(object value) { Contract.Assume(value != null); return(new JsonArray(JsonValueTypes.Interpret((object[])value))); }