JSON: Difference between revisions
Content added Content deleted
m (→{{header|C}}: indentation) |
(→{{header|OCaml}}: Using yojson lib) |
||
Line 944: | Line 944: | ||
=={{header|OCaml}}== |
=={{header|OCaml}}== |
||
=== Using json-wheel/json-static libs === |
|||
{{libheader|json-wheel}} |
{{libheader|json-wheel}} |
||
Line 975: | Line 977: | ||
let j = Json_io.json_of_string str in |
let j = Json_io.json_of_string str in |
||
print_endline (Json_io.string_of_json j);</lang> |
print_endline (Json_io.string_of_json j);</lang> |
||
=== Using yojson lib === |
|||
{{libheader|yojson}} |
|||
<lang ocaml>open Yojson.Basic.Util |
|||
let s = " |
|||
{ \"name\": \"John Doe\", |
|||
\"pages\": [ |
|||
{ \"id\": 1, |
|||
\"title\": \"The Art of Flipping Coins\", |
|||
\"url\": \"http://example.com/398eb027/1\" |
|||
}, |
|||
{ \"id\": 2, \"deleted\": true }, |
|||
{ \"id\": 3, |
|||
\"title\": \"Artichoke Salad\", |
|||
\"url\": \"http://example.com/398eb027/3\" |
|||
}, |
|||
{ \"id\": 4, |
|||
\"title\": \"Flying Bananas\", |
|||
\"url\": \"http://example.com/398eb027/4\" |
|||
} |
|||
] |
|||
}" |
|||
let extract_titles json = |
|||
[json] |
|||
|> filter_member "pages" |
|||
|> flatten |
|||
|> filter_member "title" |
|||
|> filter_string |
|||
let () = |
|||
let json = Yojson.Basic.from_string s in |
|||
List.iter print_endline (extract_titles json)</lang> |
|||
Compile and run: |
|||
<pre> |
|||
$ ocamlfind ocamlopt -o filtering filtering.ml -package yojson -linkpkg |
|||
$ ./filtering |
|||
The Art of Flipping Coins |
|||
Artichoke Salad |
|||
Flying Bananas |
|||
</pre> |
|||
=={{header|OpenEdge/Progress}}== |
=={{header|OpenEdge/Progress}}== |