public void ObjectTest() { { var json = "{}"; var node = JsonParser.Parse(json); Assert.AreEqual(0, node.Value.Bytes.Offset); Assert.AreEqual(2, node.Value.Bytes.Count); Assert.True(node.IsMap()); Assert.AreEqual(0, node.ObjectItems().Count()); } { var json = "{\"key\":\"value\"}"; var node = JsonParser.Parse(json); Assert.AreEqual(0, node.Value.Bytes.Offset); Assert.AreEqual(json.Length, node.Value.Bytes.Count); Assert.True(node.IsMap()); var it = node.ObjectItems().GetEnumerator(); Assert.IsTrue(it.MoveNext()); Assert.AreEqual("key", it.Current.Key.GetString()); Assert.AreEqual("value", it.Current.Value.GetString()); Assert.IsFalse(it.MoveNext()); } { var json = "{\"key\":\"value\"}"; var node = JsonParser.Parse(json); Assert.AreEqual(0, node.Value.Bytes.Offset); Assert.AreEqual(json.Length, node.Value.Bytes.Count); Assert.True(node.IsMap()); var it = node.ObjectItems().GetEnumerator(); Assert.IsTrue(it.MoveNext()); Assert.AreEqual("key", it.Current.Key.GetString()); Assert.AreEqual("value", it.Current.Value.GetString()); Assert.IsFalse(it.MoveNext()); } }
public void BooleanTest() { { var node = JsonParser.Parse("true"); Assert.AreEqual(0, node.Value.Bytes.Offset); Assert.AreEqual(4, node.Value.Bytes.Count); Assert.True(node.IsBoolean()); Assert.AreEqual(true, node.GetBoolean()); Assert.Catch(typeof(FormatException), () => node.GetDouble()); } { var node = JsonParser.Parse(" false "); Assert.AreEqual(1, node.Value.Bytes.Offset); Assert.AreEqual(5, node.Value.Bytes.Count); Assert.True(node.IsBoolean()); Assert.AreEqual(false, node.GetBoolean()); } }
public void KeyValue() { var p = new Point { X = 1, Vector = new float[] { 1, 2, 3 } }; var f = new JsonFormatter(); f.BeginMap(); f.KeyValue(() => p.Vector); f.EndMap(); var json = JsonParser.Parse(new Utf8String(f.GetStoreBytes())); Assert.AreEqual(1, json.GetObjectCount()); Assert.AreEqual(1, json["Vector"][0].GetInt32()); }
public void CreateFromClass() { var s = JsonSchema.FromType <Person>(); Assert.AreEqual("Person", s.Title); var v = s.Validator as JsonObjectValidator; Assert.AreEqual("Age in years", v.Properties["age"].Description); Assert.AreEqual(new[] { "firstName", "lastName" }, v.Required); var f = new JsonFormatter(2); s.ToJson(f); var json = f.ToString(); var parsed = JsonParser.Parse(json); Assert.AreEqual(0, parsed["properties"]["age"]["minimum"].GetInt32()); }
public void NestedObjectTest() { { var json = "{\"key\":{ \"nestedKey\": \"nestedValue\" }, \"key2\": { \"nestedKey2\": \"nestedValue2\" } }"; var node = JsonParser.Parse(json); Assert.True(node.IsMap()); { var it = node.ObjectItems().GetEnumerator(); Assert.IsTrue(it.MoveNext()); Assert.AreEqual("key", it.Current.Key.GetString()); Assert.True(it.Current.Value.IsMap()); Assert.IsTrue(it.MoveNext()); Assert.AreEqual("key2", it.Current.Key.GetString()); Assert.True(it.Current.Value.IsMap()); Assert.IsFalse(it.MoveNext()); } var nested = node["key2"]; { var it = nested.ObjectItems().GetEnumerator(); Assert.IsTrue(it.MoveNext()); Assert.AreEqual("nestedKey2", it.Current.Key.GetString()); Assert.AreEqual("nestedValue2", it.Current.Value.GetString()); Assert.IsFalse(it.MoveNext()); } Assert.AreEqual("nestedValue2", node["key2"]["nestedKey2"].GetString()); } }
public void StringTest() { { var value = "hoge"; var quoted = "\"hoge\""; Assert.AreEqual(quoted, JsonString.Quote(value)); var node = JsonParser.Parse(quoted); Assert.AreEqual(0, node.Value.Bytes.Offset); Assert.AreEqual(quoted.Length, node.Value.Bytes.Count); Assert.True(node.IsString()); Assert.AreEqual("hoge", node.GetString()); } { var value = "fuga\n hoge"; var quoted = "\"fuga\\n hoge\""; Assert.AreEqual(quoted, JsonString.Quote(value)); var node = JsonParser.Parse(quoted); Assert.AreEqual(0, node.Value.Bytes.Offset); Assert.AreEqual(quoted.Length, node.Value.Bytes.Count); Assert.True(node.IsString()); Assert.AreEqual(value, node.GetString()); } }
public void Utf8Test() { JsonParser.Parse("\"5\""); }
public void ParseTest() { var json = "{"; Assert.Catch(typeof(ParserException), () => JsonParser.Parse(json)); }
public static ListTreeNode <JsonValue> ParseAsJson(this string json) { return(JsonParser.Parse(json)); }
public static ListTreeNode <JsonValue> ParseAsJson(this ArraySegment <byte> bytes) { return(JsonParser.Parse(new Utf8String(bytes))); }
public static ListTreeNode <JsonValue> ParseAsJson(this byte[] bytes) { return(JsonParser.Parse(new Utf8String(bytes))); }