Advertisement
Guest User

Untitled

a guest
May 27th, 2015
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. type JSON =
  2. | JSeq of JSON list
  3. | JObj of Map<string, JSON>
  4. | JNum of int
  5. | JStr of string
  6. | JBool of bool
  7. | JNull
  8.  
  9. let phone1 = JObj(Map.ofSeq [("type", JStr("home")); ("number", JStr("123 456-789"))])
  10. let phone2 = JObj(Map.ofSeq [("type", JStr("fax")); ("number", JStr("987 654-321"))])
  11. let phones = JSeq(List.ofSeq [phone1; phone2])
  12. let address = JObj(Map.ofSeq [ ("streetAddress", JStr("21 2nd Street")); ("state", JStr("NY")); ("postalCode", JNum(10021)) ])
  13. let hash = Map.ofSeq [("fisrtName", JStr("Jhon")); ("lastName", JStr("Smith")); ("address", address);("phoneNumbers", phones)]
  14.  
  15. let data = JObj(hash)
  16.  
  17.  
  18. let rec show = function
  19. | JNum(n) -> System.Convert.ToString(n)
  20. | JBool(b) -> System.Convert.ToString(b)
  21. | JStr(str) -> "\"" + str + "\""
  22. | JNull -> "null"
  23. | JSeq(elems) ->
  24. let tmp = List.map show elems |> String.concat ", "
  25. "[" + tmp + "]"
  26. | JObj(bindings) ->
  27. let tmp = bindings
  28. |> Map.toList
  29. |> List.map (fun (k, v) -> "\"" + k + "\": " + (show v))
  30. |> String.concat ", "
  31. "{" + tmp + "}"
  32.  
  33.  
  34. printfn "%s" (show data)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement