示例#1
0
        public void EvaluateWildcardScanNestResults()
        {
            JsonDocument o1 = JsonDocument.Parse(@"{ ""Name"": 1 }");
            JsonDocument o2 = JsonDocument.Parse(@"{ ""Name"": 2 }");
            JsonDocument o3 = JsonDocument.Parse(@"{ ""Name"": { ""Name"": [3] } }");
            var          a  = JsonDocument.Parse(@"[
                { ""Name"": 1 },
                { ""Name"": 2 },
                { ""Name"": { ""Name"": [3] } }
            ]");

            var t = a.SelectElements("$..*").ToList();

            Assert.NotNull(t);
            Assert.Equal(9, t.Count);

            Assert.True(a.DeepEquals(t[0].Value));
            Assert.True(o1.DeepEquals(t[1].Value));
            Assert.Equal(1, t[2].Value.GetInt32());
            Assert.True(o2.DeepEquals(t[3]));
            Assert.Equal(2, t[4].Value.GetInt32());
            Assert.True(o3.DeepEquals(t[5]));
            Assert.True(JsonDocument.Parse(@"{ ""Name"": [3] }").DeepEquals(t[6].Value));
            Assert.True(JsonDocument.Parse("[3]").DeepEquals(t[7].Value));
            Assert.Equal(3, t[8].Value.GetInt32());
            Assert.True(JsonDocument.Parse("[3]").DeepEquals(t[7].Value));
        }
示例#2
0
        public void EvaluateWildcardScan()
        {
            JsonDocument o1 = JsonDocument.Parse(@"{ ""Name"": 1 }");
            JsonDocument o2 = JsonDocument.Parse(@"{ ""Name"": 2 }");
            var          a  = JsonDocument.Parse(@"[{ ""Name"": 1 }, { ""Name"": 2 }]");

            var t = a.SelectElements("$..*").ToList();

            Assert.NotNull(t);
            Assert.Equal(5, t.Count);
            Assert.True(a.DeepEquals(t[0].Value));
            Assert.True(o1.DeepEquals(t[1].Value));
            Assert.Equal(1, t[2].Value.GetInt32());
            Assert.True(o2.DeepEquals(t[3].Value));
            Assert.Equal(2, t[4].Value.GetInt32());
        }