packages feed

json2-0.2: Examples/ExampleQuery.hs

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