packages feed

json2-0.8: 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 = pprint citys

jCitys = foldl mergeRec emptyObj citys
ex1 = pprint jCitys

query2 = getFromKeys ["Europa", "America", "Atlantida"]
ex2 = pprint $ query2 jCitys

query3 = getFromKeys ["Europa", "America"] >>> getFromObj 
ex3 = pprint $ query3 jCitys

 -- Query:  All city Europa and Australia
 -- query31, query32, query33 is equal
 
query31 = getFromKeys ["Europa", "Australia"] 
  >>> (getFromArr `orElse`  getFromObj)
  >>> (isStr `orElse` getFromArr)
ex31 = pprint $ query31 jCitys

query32 = getFromKeys ["Europa", "Australia"] 
  >>> (getFromObj `when` isObj)
  >>> getFromArr
ex32 = pprint $ query32 jCitys

query33 = getFromKeys ["Europa",  "Australia"] 
  >>> deep getFromArr
ex33 = pprint $ query33 jCitys