コード例 #1
0
        public void ThatEmptyObjectParses()
        {
            var parser = Utilities.jsonParserFromString("{}");
            var tree   = parser.@object().Tree;

            var stream = new CommonTreeNodeStream(tree);
            var walker = new JsonTree(stream);
            var root   = walker.@object();

            Assert.AreEqual(typeof(KeyValuePair <string, object>[]), root.GetType());
            Assert.AreEqual(0, root.Length);
        }
コード例 #2
0
        public void ThatEmptyObjectParses()
        {
            var parser = Utilities.jsonParserFromString("{}");
            var tree = parser.@object().Tree;

            var stream = new CommonTreeNodeStream(tree);
            var walker = new JsonTree(stream);
            var root = walker.@object();

            Assert.AreEqual(typeof(KeyValuePair<string, object>[]), root.GetType());
            Assert.AreEqual(0, root.Length);

        }
コード例 #3
0
        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)));
        }
コード例 #4
0
        public void ObjectWithSimplePair()
        {
            var parser = Utilities.jsonParserFromString("{\"testKey\":123.123}");
            var tree   = parser.@object().Tree;

            var stream = new CommonTreeNodeStream(tree);
            var walker = new JsonTree(stream);
            var root   = walker.@object();


            Assert.AreEqual(typeof(KeyValuePair <string, object>[]), root.GetType());
            Assert.AreEqual(1, root.Length);
            Assert.AreEqual("testKey", root[0].Key);
            Assert.AreEqual(123.123, root[0].Value);
        }
コード例 #5
0
        public void ThatWhiteSpaceIsIgnored()
        {
            var parser = Utilities.jsonParserFromString("   \n{\"testKey\"\n:[123],\t   \"key2\"  :   {}\n\n\n}   ");
            var tree   = parser.toplevel().Tree;

            var stream = new CommonTreeNodeStream(tree);
            var walker = new JsonTree(stream);
            var root   = walker.@object();

            Assert.AreEqual(typeof(KeyValuePair <string, object>[]), root.GetType());
            Assert.AreEqual(2, root.Length);
            Assert.AreEqual("testKey", root[0].Key);
            Assert.IsTrue(new object[] { 123d }.All(o => (root[0].Value as object[]).Contains(o)));
            Assert.AreEqual("key2", root[1].Key);
            Assert.AreEqual(typeof(KeyValuePair <string, object>[]), root[1].Value.GetType());
            Assert.AreEqual(0, (root[1].Value as KeyValuePair <string, object>[]).Length);
        }
コード例 #6
0
        public void ObjectWithObjectAndArrayValues()
        {
            //var parser = Utilities.jsonParserFromString("{\"testKey\":[123],\"key2\":{},\"key3\":{\"key4\":234}}");
            var parser = Utilities.jsonParserFromString("{\"testKey\":[123],\"key2\":{}}");
            var tree   = parser.toplevel().Tree;

            var stream = new CommonTreeNodeStream(tree);
            var walker = new JsonTree(stream);
            var root   = walker.@object();


            Assert.AreEqual(typeof(KeyValuePair <string, object>[]), root.GetType());
            Assert.AreEqual(2, root.Length);
            Assert.AreEqual("testKey", root[0].Key);
            Assert.IsTrue(new object[] { 123d }.All(o => (root[0].Value as object[]).Contains(o)));
            Assert.AreEqual("key2", root[1].Key);
            Assert.AreEqual(typeof(KeyValuePair <string, object>[]), root[1].Value.GetType());
            Assert.AreEqual(0, (root[1].Value as KeyValuePair <string, object>[]).Length);
        }
コード例 #7
0
      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));
      }
コード例 #8
0
        public void ObjectWithSimplePair()
        {
            var parser = Utilities.jsonParserFromString("{\"testKey\":123.123}");
            var tree = parser.@object().Tree;

            var stream = new CommonTreeNodeStream(tree);
            var walker = new JsonTree(stream);
            var root = walker.@object();


            Assert.AreEqual(typeof(KeyValuePair<string, object>[]), root.GetType());
            Assert.AreEqual(1, root.Length);
            Assert.AreEqual("testKey", root[0].Key);
            Assert.AreEqual(123.123, root[0].Value);
        }
コード例 #9
0
        public void ThatWhiteSpaceIsIgnored()
        {
            var parser = Utilities.jsonParserFromString("   \n{\"testKey\"\n:[123],\t   \"key2\"  :   {}\n\n\n}   ");
            var tree = parser.toplevel().Tree;

            var stream = new CommonTreeNodeStream(tree);
            var walker = new JsonTree(stream);
            var root = walker.@object();

            Assert.AreEqual(typeof(KeyValuePair<string, object>[]), root.GetType());
            Assert.AreEqual(2, root.Length);
            Assert.AreEqual("testKey", root[0].Key);
            Assert.IsTrue(new object[] { 123d }.All(o => (root[0].Value as object[]).Contains(o)));
            Assert.AreEqual("key2", root[1].Key);
            Assert.AreEqual(typeof(KeyValuePair<string, object>[]), root[1].Value.GetType());
            Assert.AreEqual(0, (root[1].Value as KeyValuePair<string, object>[]).Length);

        }
コード例 #10
0
        public void ObjectWithObjectAndArrayValues()
        {
            //var parser = Utilities.jsonParserFromString("{\"testKey\":[123],\"key2\":{},\"key3\":{\"key4\":234}}");
            var parser = Utilities.jsonParserFromString("{\"testKey\":[123],\"key2\":{}}");
            var tree = parser.toplevel().Tree;

            var stream = new CommonTreeNodeStream(tree);
            var walker = new JsonTree(stream);
            var root = walker.@object();


            Assert.AreEqual(typeof(KeyValuePair<string, object>[]), root.GetType());
            Assert.AreEqual(2, root.Length);
            Assert.AreEqual("testKey", root[0].Key);
            Assert.IsTrue(new object[] { 123d }.All(o => (root[0].Value as object[]).Contains(o)));
            Assert.AreEqual("key2", root[1].Key);
            Assert.AreEqual(typeof(KeyValuePair<string, object>[]), root[1].Value.GetType());
            Assert.AreEqual(0, (root[1].Value as KeyValuePair<string, object>[]).Length);
        }