private JsonToken ParseNextMember() { switch (NextClean()) { case ';': case ',': { if (NextClean() == '}') { return(Yield(JsonToken.EndObject())); } break; } case '}': return(Yield(JsonToken.EndObject())); default: throw SyntaxError("Expected a ',' or '}'."); } _reader.Back(); string name = Parse().Text; return(Yield(JsonToken.Member(name), ParseObjectMemberValueMethod)); }
public void ToObject() { JsonBuffer obj = NamedJsonBuffer.ToObject( new NamedJsonBuffer("foo", JsonBuffer.From("bar")), new NamedJsonBuffer("qux", JsonBuffer.From("quux"))); Assert.AreEqual(6, obj.Length); Assert.AreEqual(JsonToken.Object(), obj[0]); Assert.AreEqual(JsonToken.Member("foo"), obj[1]); Assert.AreEqual(JsonToken.String("bar"), obj[2]); Assert.AreEqual(JsonToken.Member("qux"), obj[3]); Assert.AreEqual(JsonToken.String("quux"), obj[4]); Assert.AreEqual(JsonToken.EndObject(), obj[5]); }
public void JsonTokenString() { Assert.AreEqual("String:hello", JsonToken.String("hello").ToString()); Assert.AreEqual("Number:123", JsonToken.Number("123").ToString()); Assert.AreEqual("Boolean:true", JsonToken.Boolean(true).ToString()); Assert.AreEqual("Boolean:false", JsonToken.Boolean(false).ToString()); Assert.AreEqual("Null:null", JsonToken.Null().ToString()); Assert.AreEqual("Array", JsonToken.Array().ToString()); Assert.AreEqual("EndArray", JsonToken.EndArray().ToString()); Assert.AreEqual("Object", JsonToken.Object().ToString()); Assert.AreEqual("EndObject", JsonToken.EndObject().ToString()); Assert.AreEqual("Member:test", JsonToken.Member("test").ToString()); Assert.AreEqual("BOF", JsonToken.BOF().ToString()); Assert.AreEqual("EOF", JsonToken.EOF().ToString()); }
private JsonToken ParseObjectMember() { switch (NextClean()) { case '}': return(Yield(JsonToken.EndObject())); case '\0': throw new JsonException("An object must end with '}'."); default: { _reader.Back(); string text = Parse().Text; return(Yield(JsonToken.Member(text), ParseObjectMemberValueMethod)); } } }
/// <summary> /// Parses the first member name of the object or the end of the array /// in case of an empty object. /// </summary> private JsonToken ParseObjectMember() { char ch = NextClean(); if (ch == '}') { return(Yield(JsonToken.EndObject())); } if (ch == BufferedCharReader.EOF) { throw SyntaxError("An object must end with '}'."); } _reader.Back(); string name = Parse().Text; return(Yield(JsonToken.Member(name), ParseObjectMemberValueMethod)); }
private JsonToken ParseNextMember() { switch (NextClean()) { case ',': case ';': { if (NextClean() == '}') { return(Yield(JsonToken.EndObject())); } _reader.Back(); string text = Parse().Text; return(Yield(JsonToken.Member(text), ParseObjectMemberValueMethod)); } case '}': return(Yield(JsonToken.EndObject())); default: throw new JsonException("Expected a ',' or '}'."); } }
protected override void WriteEndObjectImpl() { Write(JsonToken.EndObject()); }
public void ObjectTokens() { Assert.AreEqual(JsonTokenClass.Object, JsonToken.Object().Class); Assert.AreEqual(JsonTokenClass.EndObject, JsonToken.EndObject().Class); }
public MockedJsonReader EndObject() { return(Append(JsonToken.EndObject())); }