public void QueryPropertyValue() { var json = JObject.Parse(@" { book: 'C# in a Nutshell', author: 'Joseph Albahari' }"); var navigator = new JObjectXPathNavigator(json); var queryResult = navigator.Select("/book/text()") .GetResult <string>() .ToList(); Assert.AreEqual(1, queryResult.Count); Assert.AreEqual("C# in a Nutshell", queryResult[0]); }
public void QueryPropertyByContent() { var json = JObject.Parse(@" { book: 'C# in a Nutshell', author: 'Joseph Albahari' }"); var navigator = new JObjectXPathNavigator(json); var queryResult = navigator.Select("/author[text()='Joseph Albahari']") .GetResult <JProperty>() .ToList(); Assert.AreEqual(1, queryResult.Count); Assert.AreEqual("author", queryResult[0].Name); Assert.AreEqual("Joseph Albahari", queryResult[0].Value.ToString()); }
public void QueryArrayItemByIndex() { var json = JObject.Parse(@" { books: [ { name: 'C# in a Nutshell', author: 'Joseph Albahari' }, { name: 'Programming WCF Services', author: 'Juval Lowy' } ] }"); var navigator = new JObjectXPathNavigator(json); var queryResult = navigator.Select("/books/_2") .GetResult <JObject>() .ToList(); Assert.AreEqual(1, queryResult.Count); Assert.AreEqual(queryResult[0].GetValue("name").ToString(), "Programming WCF Services"); Assert.AreEqual(queryResult[0].GetValue("author").ToString(), "Juval Lowy"); }
public void QueryInnerLevelItems() { var json = JObject.Parse(@" { books: [ { name: 'C# in a Nutshell', author: 'Joseph Albahari' }, { name: 'Programming WCF Services', author: 'Juval Lowy' } ] }"); var navigator = new JObjectXPathNavigator(json); var queryResult = navigator.Select("/books/*/name/text()") .GetResult <string>() .ToList(); Assert.AreEqual(2, queryResult.Count); Assert.AreEqual("C# in a Nutshell", queryResult[0]); Assert.AreEqual("Programming WCF Services", queryResult[1]); }
public void QueryObjectItems() { var json = JObject.Parse(@" { book: 'C# in a Nutshell', author: 'Joseph Albahari', chapters: ['Chapter 1 Introducing C# and the .NET Framework', 'Chapter 2 C# Language Basics', '...'] }"); var navigator = new JObjectXPathNavigator(json); var queryResult = navigator.Select("/*") .GetResult <JProperty>() .ToList(); Assert.AreEqual(3, queryResult.Count); Assert.AreEqual("book", queryResult[0].Name); Assert.AreEqual("author", queryResult[1].Name); Assert.AreEqual("chapters", queryResult[2].Name); }