Suite à la discussion sur Marschall et autre SExpLib, j'ai retenu JSON qui correspond le mieux à mon besoin :
-écrire dans un fichier des types un peu complexes
-types non circulaires
-données pas gigantesques, donc s'accomodant du format texte
-et surtout "human readable" et éditables
J'ai donc téléchargé json-wheel-1.0.4.tar.gz
1) ce qui fonctionne :
j'ai testé avec succès dans le TopLevel l'exemple donné :
1 2 3 4 5 6
| (* Program that builds a JSON object and saves it into a file *)
open Json_type
let obj = Object [ "x", Int 1;
"y", Int 2 ]
let _ = Json_io.save_json "point.js" obj |
J'ai fait
#use "...../json_type.ml"
après avoir encapsulé le contenu du fichier .ml original dans un
module Json_type = struct .... end
ça fonctionne bien...
2) ce qui coince :
la suite de l'exemple donné sur le site :
1 2 3 4 5 6 7 8 9 10 11
| (* Program that reads a JSON object from a file and converts it
into a specialized type.
Uses file "point.js" created by the previous example. *)
open Json_type
open Json_type.Browse
let json_obj = Json_io.load_json "point.js"
let tbl = make_table (objekt json_obj)
let x = int (field tbl "x")
let y = int (field tbl "y")
let _ = Printf.printf "x = %i\ny = %i\n" x y |
Je n'y arrive pas : en effet, le exige un Json_lexer que je n'ai pas, il est livré dans le .tar.gz en tant que "Json_lexer.mll", je ne connait pas ce type de fichier et je ne sais pas comment l'utiliser dans le TopLevel...
Quelqu'un peut m'aider ?
Partager