public static jsonParserFromString ( string input ) : |
||
input | string | |
return |
public void ThatArraysCanHaveArrays() { var parser = Utilities.jsonParserFromString("[123,[],[654,888],345]"); var tree = parser.array().Tree; var stream = new CommonTreeNodeStream(tree); var walker = new JsonTree(stream); var root = walker.array(); Assert.AreEqual(4, root.Length); Assert.AreEqual(123d, root[0]); Assert.AreEqual(345d, root[3]); var a1 = root[1]; var a2 = root[2]; Assert.AreEqual(typeof(object[]), a1.GetType()); Assert.AreEqual(typeof(object[]), a2.GetType()); Assert.AreEqual(0, ((object[])a1).Length); Assert.AreEqual(2, ((object[])a2).Length); var o2 = (object[])a2; Assert.AreEqual(654d, o2[0]); Assert.AreEqual(888d, o2[1]); }
public void ThatStringsParse() { var parser = Utilities.jsonParserFromString("\"1\\\"23\""); var tree = parser.value().Tree; var t = (new DynamicJson.JsonTree(new CommonTreeNodeStream(tree))).@string(); Assert.AreEqual("1\"23", t); }
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); }
public void ThatArraysCanBeEmpty() { var str = "[]"; var parser = Utilities.jsonParserFromString(str); var tree = parser.array().Tree; var stream = new CommonTreeNodeStream(tree); var walker = new JsonTree(stream); var root = walker.array(); Assert.AreEqual(0, root.Length); }
public void ThatArraysHasNumbers() { var parser = Utilities.jsonParserFromString("[123,234,345]"); var tree = parser.array().Tree; var stream = new CommonTreeNodeStream(tree); var walker = new JsonTree(stream); var root = walker.array(); Assert.AreEqual(123d, root[0]); Assert.AreEqual(234d, root[1]); Assert.AreEqual(345d, root[2]); }
public void ThatSingleAssignmentWorks() { var parser = Utilities.jsonParserFromString("\"key\":[1,2,3]"); var tree = parser.pair().Tree; var stream = new CommonTreeNodeStream(tree); var walker = new JsonTree(stream); var root = walker.kvp(); Assert.AreEqual("key", root.Key); Assert.AreEqual(typeof(object[]), root.Value.GetType()); Assert.AreEqual(2d, ((object[])root.Value)[1]); }
public void ThatArraysCanHaveStrings() { var str = "[\"oeu\",\"uu\"]"; var parser = Utilities.jsonParserFromString(str); var tree = parser.array().Tree; var stream = new CommonTreeNodeStream(tree); var walker = new JsonTree(stream); var root = walker.array(); Assert.AreEqual(2, root.Length); Assert.AreEqual("oeu", root[0]); Assert.AreEqual("uu", root[1]); }
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); }
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); }
public void ThatArraysCanHaveBooleansAndNull() { var parser = Utilities.jsonParserFromString("[true,true,false,true,false,null]"); var tree = parser.array().Tree; var stream = new CommonTreeNodeStream(tree); var walker = new JsonTree(stream); var root = walker.array(); Assert.AreEqual(6, root.Length); Assert.IsTrue((bool)root[0]); Assert.IsTrue((bool)root[1]); Assert.IsTrue((bool)root[3]); Assert.IsFalse((bool)root[2]); Assert.IsFalse((bool)root[4]); Assert.IsNull(root[5]); }
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); }
public void ThatKvpFailOnNonStringKeys() { Action <object> tryToCreateKvp = k => { bool caught = false; try { var parser = Utilities.jsonParserFromString(k.ToString() + ":[1,2,3]"); var tree = parser.pair().Tree; } catch (JsonException) { caught = true; } Assert.IsTrue(caught); }; tryToCreateKvp(123); tryToCreateKvp(123d); tryToCreateKvp(new object[] { 1, 3 }); }