Example: /Util/JSON/JSON Query Tests

Online Documentation   -   Statistics   -   FAQ   -   Plugin Parts (All, Dependencies)   -   Class hierarchy

New in Version 22.2 22.3 22.4 22.5 23.0 23.1 23.2 23.3 23.4 23.5 24.0 24.1

The list of the   topics,   classes,   interfaces,   controls,   modules,   global methods by category,   global methods by name,   screenshots,   licenses   and   examples.

Platforms to show: All Mac Windows Linux Cross-Platform

/Util/JSON/JSON Query Tests


You find this example project in your Plugins Download as a Xojo project file within the examples folder: /Util/JSON/JSON Query Tests

This example is the version from Mon, 24th Sep 2023.

Project "JSON Query Tests.xojo_binary_project"
Class App Inherits ConsoleApplication
EventHandler Function Run(args() as String) As Integer Dim json As String = "{ ""store"": {" +_ " ""book"": [ " +_ " { ""category"": ""reference""," +_ " ""author"": ""Nigel Rees""," +_ " ""title"": ""Sayings of the Century""," +_ " ""price"": 8.95" +_ " }," +_ " { ""category"": ""fiction""," +_ " ""author"": ""Evelyn Waugh""," +_ " ""title"": ""Sword of Honour""," +_ " ""price"": 12.99" +_ " }," +_ " { ""category"": ""fiction""," +_ " ""author"": ""Herman Melville""," +_ " ""title"": ""Moby Dick""," +_ " ""isbn"": ""0-553-21311-3""," +_ " ""price"": 8.99" +_ " }," +_ " { ""category"": ""fiction""," +_ " ""author"": ""J. R. R. Tolkien""," +_ " ""title"": ""The Lord of the Rings""," +_ " ""isbn"": ""0-395-19395-8""," +_ " ""price"": 22.99" +_ " }" +_ " ]," +_ " ""bicycle"": {" +_ " ""color"": ""red""," +_ " ""price"": 19.95" +_ " }" +_ " }" +_ "}" Dim j As New JSONMBS(json) // The authors of books that are cheaper than $10 Dim result1 As JSONMBS = j.Query("$.store.book[?(@.price < 10)].author") print "Result 1: "+result1.ToString // [ // "Nigel Rees", // "Herman Melville" // ] // The all books 'Dim result2a As JSONMBS = j.Query("$..book") 'print "Result 2: "+result2a.ToString // The number of books // returns 1 currently, but should Return 4. Reported As bug... Dim result2 As JSONMBS = j.Query("length($..book)") print "Result 2: "+result2.ToString // The third book Dim result3 As JSONMBS = j.Query("$..book[2]") print "Result 3: "+result3.ToString // All books whose author's name starts with Evelyn Dim result4 As JSONMBS = j.Query("$.store.book[?(@.author =~ /Evelyn.*?/)]") print "Result 4: "+result4.ToString // The titles of all books that have isbn number Dim result5 As JSONMBS = j.Query("$..book[?(@.isbn)].title") print "Result 5: "+result5.ToString // All authors and titles of books Dim result6 As JSONMBS = j.Query("$['store']['book']..['author','title']") print "Result 6: "+result6.ToString // Union of two ranges of book titles Dim result7 As JSONMBS = j.Query("$..book[1:2,2:4].title") print "Result 7: "+result7.ToString // Union of a subset of book titles identified by index Dim query8 As String = "$.store[@.book[0].title,@.book[1].title,@.book[3].title]" Dim result8 As JSONMBS = j.Query(query8) print "Result 8: "+result8.ToString // Union of third book title and all book titles with price > 10 Dim result9 As JSONMBS = j.Query("$.store[@.book[3].title,@.book[?(@.price > 10)].title]") print "Result 9: "+result9.ToString // Intersection of book titles with category fiction and price < 15 Dim result10 As JSONMBS = j.Query("$.store.book[?(@.category == 'fiction' && @.price < 15)].title") print "Result 10: "+result10.ToString // Normalized path expressions Dim result11 As JSONMBS = j.Query("$.store.book[?(@.author =~ /Evelyn.*?/)]") // , j.kPathResultOptionsPath) print "Result 11: "+result11.ToString // All titles whose author's second name is 'Waugh' Dim result12 As JSONMBS = j.Query("$.store.book[?(tokenize(@.author,'\\s+')[1] == 'Waugh')].title") print "Result 12: "+result12.ToString // All keys in the second book Dim result13 As JSONMBS = j.Query("keys($.store.book[1])[*]") print "Result 13: "+result13.ToString End EventHandler
End Class
End Project

See also:

The items on this page are in the following plugins: MBS Util Plugin.


💬 Ask a question or report a problem