public void ExtraCommaAfterLastArrayElementAllowed() { JsonReader reader = CreateReader("[4,2,]"); reader.ReadToken(JsonTokenClass.Array); Assert.AreEqual(4, reader.ReadNumber().ToInt32()); Assert.AreEqual(2, reader.ReadNumber().ToInt32()); reader.ReadToken(JsonTokenClass.EndArray); }
public void ArrayValuesMayBeDelimitedBySemiColon() { JsonReader reader = CreateReader("[1;2;3]"); reader.ReadToken(JsonTokenClass.Array); Assert.AreEqual(1, reader.ReadNumber().ToInt32()); Assert.AreEqual(2, reader.ReadNumber().ToInt32()); Assert.AreEqual(3, reader.ReadNumber().ToInt32()); reader.ReadToken(JsonTokenClass.EndArray); }
public void TailReadingWithNoBufferedMembers() { JsonReader tail = CreateHelper(@"{ y: 456, x: 123, z: 789 }").GetTailReader(); Assert.AreEqual("y", tail.ReadMember()); Assert.AreEqual(456, tail.ReadNumber().ToInt32()); Assert.AreEqual("x", tail.ReadMember()); Assert.AreEqual(123, tail.ReadNumber().ToInt32()); Assert.AreEqual("z", tail.ReadMember()); Assert.AreEqual(789, tail.ReadNumber().ToInt32()); tail.ReadToken(JsonTokenClass.EndObject); Assert.IsFalse(tail.Read()); }
public void SlashSlashComment() { JsonReader reader = CreateReader(@" [ 1, // 2, this is a single line comment 3 ]"); reader.ReadToken(JsonTokenClass.Array); Assert.AreEqual(1, reader.ReadNumber().ToInt32()); Assert.AreEqual(3, reader.ReadNumber().ToInt32()); reader.ReadToken(JsonTokenClass.EndArray); }
public void HashComment() { JsonReader reader = CreateReader(@" [ 1, # one 2, # two 3 # three ]"); reader.ReadToken(JsonTokenClass.Array); Assert.AreEqual(1, reader.ReadNumber().ToInt32()); Assert.AreEqual(2, reader.ReadNumber().ToInt32()); Assert.AreEqual(3, reader.ReadNumber().ToInt32()); reader.ReadToken(JsonTokenClass.EndArray); }
public void CannotInitializeWithReaderOnEnd() { JsonReader reader = JsonText.CreateReader("42"); reader.ReadNumber(); new FreeJsonMemberReadingHelper(reader); }
public void TailReading() { FreeJsonMemberReadingHelper helper = CreateHelper(@" { y: 456, x: 123, z: 789, obj1: { foo: bar }, comment: null, arr: [ 123, 456, 789 ], obj2: { a: 1, b: 2, }, }"); Assert.AreEqual(123, helper.ReadMember("x").ReadNumber().ToInt32()); helper.ReadMember("comment").ReadNull(); JsonReader reader = helper.BaseReader; Assert.AreEqual(JsonTokenClass.Member, reader.TokenClass); Assert.AreEqual("arr", reader.Text); JsonReader tail = helper.GetTailReader(); Assert.AreEqual("y", tail.ReadMember()); Assert.AreEqual(456, tail.ReadNumber().ToInt32()); Assert.AreEqual("z", tail.ReadMember()); Assert.AreEqual(789, tail.ReadNumber().ToInt32()); Assert.AreEqual("obj1", tail.ReadMember()); tail.ReadToken(JsonTokenClass.Object); Assert.AreEqual("foo", tail.ReadMember()); Assert.AreEqual("bar", tail.ReadString()); tail.ReadToken(JsonTokenClass.EndObject); Assert.AreEqual("arr", tail.ReadMember()); tail.ReadToken(JsonTokenClass.Array); Assert.AreEqual(123, tail.ReadNumber().ToInt32()); Assert.AreEqual(456, tail.ReadNumber().ToInt32()); Assert.AreEqual(789, tail.ReadNumber().ToInt32()); tail.ReadToken(JsonTokenClass.EndArray); Assert.AreEqual("obj2", tail.ReadMember()); tail.StepOut(); Assert.IsFalse(reader.Read()); }
public void Export() { JsonArray a = new JsonArray(new object[] { 123, "Hello World", true }); JsonRecorder writer = new JsonRecorder(); a.Export(writer); JsonReader reader = writer.CreatePlayer(); reader.ReadToken(JsonTokenClass.Array); Assert.AreEqual(a[0], reader.ReadNumber().ToInt32()); Assert.AreEqual(a[1], reader.ReadString()); Assert.AreEqual(a[2], reader.ReadBoolean()); reader.ReadToken(JsonTokenClass.EndArray); }
public void Export() { JsonObject o = new JsonObject(); o.Put("Number", 123); o.Put("String", "Hello World"); o.Put("Boolean", true); JsonRecorder writer = new JsonRecorder(); o.Export(writer); JsonReader reader = writer.CreatePlayer(); reader.ReadToken(JsonTokenClass.Object); string[] members = (string[])o.GetNamesArray().ToArray(typeof(string)); Assert.AreEqual(members[0], reader.ReadMember()); Assert.AreEqual(o[members[0]], reader.ReadNumber().ToInt32()); Assert.AreEqual(members[1], reader.ReadMember()); Assert.AreEqual(o[members[1]], reader.ReadString()); Assert.AreEqual(members[2], reader.ReadMember()); Assert.AreEqual(o[members[2]], reader.ReadBoolean()); Assert.AreEqual(JsonTokenClass.EndObject, reader.TokenClass); }