module Main where import Data.JSON2 import Data.JSON2.Query citys :: Jsons citys = [ "Europa" ==> "Ukraine" ==> ["Kiyv", "Gitomir", "Lviv"], "Asia" ==> "Japan" ==> ["Tokyo"], "Europa" ==> "UK" ==> ["London", "Glasgow"], "Europa" ==> "Germany" ==> ["Berlin", "Bonn"], "America" ==> "USA" ==> ["NewYork"], "America" ==> "Canada" ==> ["Toronto"], "Australia" ==> ["Melburn", "Adelaida"] ] ex0 = pprints citys jCitys = foldl unionRecObj emptyObj citys ex1 = pprint jCitys query2 = getFromKeys ["Europa", "America", "Atlantida"] ex2 = pprints $ query2 jCitys query3 = getFromKeys ["Europa", "America"] >>> getFromObj ex3 = pprints $ query3 jCitys -- Query: All city Europa and Australia -- query31, query32, query33 is equal query31 = getFromKeys ["Europa", "Australia"] >>> (getFromArr `orElse` getFromObj) >>> (isStr `orElse` getFromArr) ex31 = pprints $ query31 jCitys query32 = getFromKeys ["Europa", "Australia"] >>> (getFromObj `when` isObj) >>> getFromArr ex32 = pprints $ query32 jCitys query33 = getFromKeys ["Europa", "Australia"] >>> deep getFromArr ex33 = pprints $ query33 jCitys